2012-11-27 8 views
6

Jaki jest sens używania jawnych typów danych w PDO::bindValue()?Jaki jest sens używania jawnych typów danych w PDO :: bindValue()?

Na przykład w jednej z następujących form nastąpiłby SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'a'

$pdos->bindValue(':Value_For_An_Int_Col', 'a');//default arg for the third and opt par is PDO::PARAM_INT 

$pdos->bindValue(':Value_For_An_Int_Col', 'a', PDO::PARAM_INT); 

Odpowiedz

3

Kiedy trzeba coś takiego

SELECT * FROM ... LIMIT :intValues 

który unika się ująć wartości wewnątrz środki, rośnie błąd składni SQL

+0

Ta odpowiedź jest błędna. Cytaty nie są potrzebne, nawet gdy wiążą się ciągi. –

+0

pdo wstawi cytowane parametry, a limit nie zadziała – dynamic

+0

Tylko, żeby być absolutnie pewnym, przetestowałem to. Nie, nie wstawia cytowanych parametrów. Czy to może być problem z wersją? Mogłeś mieć rację w przeszłości, chociaż nie sądzę. Aby być bardziej szczegółowym: Nie musisz określać typów danych w PDO :: bindValue() jawnie, aby działał poprawnie z parametrami string i integer. –