PHP PDO :: bindParam () типы данных .. как это работает?

Мне интересно, что такое объявление типа данных вbindParam() (или жеbindValue()) используется для...

Я имею в виду, я думал, что если я определю целочисленный аргумент (PDO::PARAM_INT), аргумент должен быть преобразован в целое число, что-то вроде

$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);

или, по крайней мере, выдать ошибку, если аргумент не имеет объявленного типа. Но это не так.

Погуглив, я обнаружил, что в архиве php.net:

Всем привет,

В настоящее время я работаю над PDO. Именно на функцию bindParam (). Третий параметр data_type, по-видимому, здесь для принудительного определения типа значения? Но когда я пытаюсь:

$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)";
$stmt = $dbh->prepare($sql);
$nom = 'Testarossa'; $marque = 'Ferrari' ;
$stmt->BindValue(':marque',$marque) ;
$stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ;

$stmt->execute(); $nom = '250 GTO' ;
$stmt->execute(); ?>

Я ожидал, что в моей базе данных будет ошибка PHP или интергер. Но в моей БД у меня есть:

22 Testarossa Ferrari 23 250 GTO Ferrari

Это означает, что это не изменилось, если у меня есть третий параметр или нет. Или, может быть, я что-то пропустил. Может кто-то терпеть меня больше? Или просто может кто-то сказал мне, где я могу найти информацию об этом.

С Уважением,

Cyruss

Это точно моя ситуация. Где мои мысли не так?

Ответы на вопрос(4)

Ваш ответ на вопрос