この質問(Should I use bindValue() or execute(array()) to avoid SQL injection?)を読んで、実行時にarray()とbindParam PDOと準備されたステートメント。PDOプリペアドステートメントの場合はbindParam()、bindValue()、execute()を使用する必要がありますか?
しかし、私はexecute()が整数であるかどうかに関わらず、すべての変数を自動的に文字列として扱うということを思い出しています。私の質問は確かにこれは文字列変数以外のセキュリティ問題ですか?
たとえば、準備されたクエリを使用して1のユーザーIDを取得する場合、実行されたパラメータは整数ではなく文字列として扱われます。
私はので、私は完全に書く方法を理解しようとしているPDOを勉強しています明らかに、このスクリプトは、ユーザー入力のない方法を持っていないだろう、とだけ、このようなプロファイルを更新するなど、ユーザーの入力をサポートします、ポストなど
SQLインジェクションやその他のセキュリティ上の欠陥を防ぐ/防御しているPDOクエリ(またはより優れた機能)を安全に保護します。
ありがとう
あなたが探しているものなら、bindParamでパラメータの型を強制することができます。 http://php.net/manual/en/pdostatement.bindparam.php http://php.net/manual/en/pdo.constants.php – Linesofcode
また、PDOStatement :: bindValueを使用して行うこともできます。 http://php.net/manual/en/pdostatement.bindvalue.php –