可能性の重複:例えば
Php PDO::bindParam data types.. how does it work?PDO:バインディング中にdata_typeを使用する目的は何ですか?
言って、私は以下のプリペアドステートメントを持っていること:
:$sth = $dbh->prepare('SELECT `name` FROM `user` WHERE `user_id` = :user_id');
私はそうのようなuser_idのパラメータをバインドすることができ
$sth->bindValue(':user_id', $user_id_value);
そして、私はまだSQLインジェクションから安全です。
ただし、bindValue()はdata_typeというオプションのパラメーターでもあり、明示的なデータ型を設定できます。例:
$sth->bindValue(':user_id', $user_id_value, PDO::PARAM_INT);
これにより、user_idが整数になることがわかります。
私の質問は、SQLインジェクションの有無にかかわらず、なぜbind_typeのdata_typeパラメータを使用するのですか?それはデータの整合性を強制するのですか?データを事前に検証している場合は、そのデータを使用することを心配する必要がありますか?私が考えなかったそれを使用することに他の利点がありますか?
あなたは質問のどの部分に答えるのですか?私はまだそれが良いことだとは別の議論を見ることはありません。それは技術的な説明ではありません。 – zerkms
erm ...データ型の整合性を強制するかどうか尋ねました。使用したくない場合は使用しないでください。私はその余分な施行が好きなので私はそれを使用します。 - 少しでも助けてくれます。[メスのユーザーが言うように] –
私はOPではありません。しかし、それでもなお "私はその余分な執行層が好きだから" - 技術的な説明ではない。あなたは、余分な執行層が本当に役立ち、明示的な型指定の有無に違いがある場合の例を挙げることができますか? – zerkms