お世話になります。
現在、プリペアドステートメントについて調べている初心者です。
PHPのbindValueの第2引数の型指定について教えてください。
質問内のエミュレーションOFFとは「PDO::ATTR_EMULATE_PREPARES => false」のことを指しております。
下記ような記述があったとします。
$price = '100'; $prepare = $dbh->prepare('SELECT name FROM fruit WHERE price = ?'); $prepare->bindValue(1,$price,PDO::PARAM_INT);
$price
の値を整数型として扱いたい場合は、エミュレーションがON・OFFにかかわらず、下記のように第2引数で型変換をする必要があるという認識でよろいしでしょうか?
$price = '100'; $prepare = $dbh->prepare('SELECT name FROM fruit WHERE price = ?'); $prepare->bindValue(1,(int)$price,PDO::PARAM_INT);
今度は$price
の値を整数型として、下記のように記述した場合です。
$price = 100; $prepare = $dbh->prepare('SELECT name FROM fruit WHERE price = ?'); $prepare->bindValue(1,$price,PDO::PARAM_INT);
値も整数型でそのまま整数型として処理したいとします。
エミュレーションがOFFの場合は、上記のように第2引数に型を明示しなくても問題ないでしょうか?
エミュレーションがONの場合は、下記のように型を明示しないといけないのでしょうか?
$price = 100; $prepare = $dbh->prepare('SELECT name FROM fruit WHERE price = ?'); $prepare->bindValue(1,(int)$price,PDO::PARAM_INT);
【質問】
まとめると下記のような認識でおりますが、正しいでしょうか?
![イメージ説明]WIDTH:600
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/03/18 04:24
退会済みユーザー
2015/03/18 11:05
退会済みユーザー
2015/03/18 13:29
2015/03/18 23:12