プリペアド ステートメントでは mysql_real_escape_string() 関数が必要ですか?
指定されたクエリのようにプリペアド ステートメントを利用する場合:
<code class="php">$sql = $db->prepare('select location from location_job where location like ?'); $sql->bind_param('s', $consulta); $sql->execute(); $sql->bind_result($location);</code>
準備されたステートメントは入力内の特殊文字をエスケープすることで SQL インジェクション攻撃を防ぐ安全な方法を提供するため、mysql_real_escape_string() 関数は必要ありません。
クエリを改善するための 1 つの提案は、' ?'プレースホルダーを使用すると、execute メソッドを通じてパラメータをより簡単に渡すことができます:
<code class="php">$sql->execute([$consulta]);</code>
ただし、クロスサイト スクリプティングの脆弱性を防ぐため、表示する前に htmlspecialchars() を使用してユーザー入力をサニタイズしてください。
以上がプリペアドステートメントには「mysql_real_escape_string()」が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。