ホームページ > バックエンド開発 > PHPチュートリアル > `mysqli_real_escape_string()` が「パラメータの不一致」エラーをスローするのはなぜですか?また、それを修正するにはどうすればよいですか?

`mysqli_real_escape_string()` が「パラメータの不一致」エラーをスローするのはなぜですか?また、それを修正するにはどうすればよいですか?

DDD
リリース: 2024-12-01 20:37:10
オリジナル
883 人が閲覧しました

Why Does `mysqli_real_escape_string()` Throw a

mysqli_real_Escape_string: パラメーターの不一致について

mysqli_real_escape_string() 関数を使用する場合、開発者は次のエラーに遭遇する可能性があります:「mysqli_real_escape_string() は正確に 2 つのパラメーターを期待しており、1 つは指定されています。 」これを解決するには、関数の正しい使用法とそのパラメータ要件を理解する必要があります。

関数のシグネチャ

公式ドキュメントによると、mysqli_real_escape_string() の構文は次のとおりです。

string mysqli_real_escape_string ( mysqli $link , string $escapestr )
ログイン後にコピー

これは、関数が 2 つ必要であることを示しますパラメータ:

  1. $link: 有効な MySQLi 接続リンク
  2. $escapestr: エスケープする文字列

よくある誤解と解決策

提供されたコード スニペットは、PHP バージョンをチェックして、使用するかどうかを決定しようとします。 mysqli_real_escape_string() または mysqli_escape_string()。ただし、mysqli_real_escape_string() は最初のパラメータとして MySQLi 接続リンクを必要とするため失敗しますが、これがコードにありません。

このエラーを修正するには、mysqli_real_escape_string() に正しいパラメータを指定する必要があります。これは、MySQLi 接続を確立し、接続リンクを最初の引数として関数に渡すことで実現できます。

正しく使用する方法の例を次に示します。

$mysqli = new mysqli('host', 'username', 'password', 'database');

if (phpversion() >= '4.3.0'){
    $string = mysqli_real_escape_string($mysqli, $string);
}else{
    $string = mysqli_escape_string($mysqli, $string);
}
ログイン後にコピー

このコードでは、$mysqli 変数は有効な MySQLi 接続リンクを表し、エスケープされる $string とともに mysqli_real_escape_string() に渡されます。これによりエラーが解決され、意図したとおりに mysqli_real_escape_string() を使用できるようになります。

以上が`mysqli_real_escape_string()` が「パラメータの不一致」エラーをスローするのはなぜですか?また、それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート