「mysqli_real_escape_string()」関数は、文字列内の特殊文字をエスケープするように設計されています。 SQL インジェクション攻撃。ただし、「mysqli_real_escape_string() は 2 つのパラメータを期待しており、1 つは指定されています。」というエラーを引き起こす可能性がある特定のパラメータ要件があります。
問題分析:
提供されたコードPHP のバージョンをチェックし、それに応じて「mysqli_real_escape_string()」の使用を試みます。ただし、関数呼び出しにはエスケープする文字列のみが含まれており、最初の必須パラメータである mysqli リンクが欠落しています。
ドキュメントの説明:
公式ドキュメントによると、 「mysqli_real_escape_string()」には 2 つが必要ですパラメータ:
解決策:
エラーを解決するには、「mysqli_real_escape_string()」関数を呼び出すときにコードに両方のパラメーターを含める必要があります。更新バージョンは次のとおりです:
if (phpversion() >= '4.3.0') { $string = mysqli_real_escape_string($link, $string); } else { $string = mysqli_escape_string($link, $string); }
mysqli リンクが最初のパラメータとして指定されていることを確認することで、「mysqli_real_escape_string()」関数は入力文字列を適切にエスケープし、SQL インジェクションの脆弱性を防ぎます。
以上が`mysqli_real_escape_string()` が「正確に 2 つのパラメータ (1 つは指定されている) が必要」とスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。