ホームページ >データベース >mysql チュートリアル >「mysqli_stmt::bind_result()」がバインド変数不一致エラーをスローするのはなぜですか?

「mysqli_stmt::bind_result()」がバインド変数不一致エラーをスローするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 21:46:14612ブラウズ

Why Does `mysqli_stmt::bind_result()` Throw a Bind Variable Mismatch Error?

PHP の mysqli_stmt::bind_result() のバインド変数の不一致

プリペアド ステートメントを含む PHP ログイン フォームを使用してログインしようとすると、あなたはそれに遭遇しますエラー:

mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement

診断:

このエラーは、bind_param() で指定されたバインド変数の数が、準備されたパラメータによって返されるフィールドの数と一致しない場合に発生します。ステートメント。

解決策:

コード内:

$stmt->prepare("SELECT username AND password FROM users WHERE username = ?");

準備されたステートメントはユーザー名とパスワードの 2 つのフィールドを取得しますが、後続のbind_param () および binding_result() 呼び出しでは、バインド変数 $username のみを指定します。

解決するにはこれには、複数のバインド変数とフィールドを正しく指定する必要があります:

$mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
$username = $_POST['name'];
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($username, $password);

以上が「mysqli_stmt::bind_result()」がバインド変数不一致エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。