bindParam()
(または)のデータ型の宣言は何にbindValue()
使用されているのでしょうか...
つまり、整数の引数(PDO::PARAM_INT
)を定義する場合、引数は次のような整数に変換する必要があると思いました。
$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
または、引数が宣言されたタイプでない場合は、少なくともエラーをスローします。しかし、そうではありません。
グーグルで調べてみると、php.netアーカイブで次のことがわかりました。
こんにちは、みんな、
私は現在PDOに取り組んでいます。まさにbindParam()関数です。3番目のパラメーター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エラーまたは整数が含まれていると予想していました。しかし、私のDBには:
22テスタロッサフェラーリ23250GTOフェラーリ
これは、3番目のパラメーターがあるかどうかに関係なく変更されなかったことを意味します。または多分私は何かが恋しいです。誰かが私をもっと苦しめることができますか?または、誰かが私にそれに関する情報を見つけることができる場所を教えてもらえますか?
よろしく、
サイラス
それがまさに私の状況です。私の考えはどこで間違っていますか?