Мне интересно, что объявление типа данных в 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 ошибка или interger в моей базе данных. Но в моей БД я:
22 Testarossa Ferrari 23 250 GTO Ferrari
Это означает, что это не изменилось, если я имеют третий параметр или нет. Или возможно, я что-то пропустил. Может кто-нибудь навести меня больше? Или просто может кто-то сказал мне, где я могу найти информацию об этом.
Привет,
Cyruss
Это именно моя ситуация. Где мои мысли идут не так?