ホームページ >データベース >mysql チュートリアル >「mysqli_stmt::bind_result()」がバインド変数不一致エラーをスローするのはなぜですか?
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 サイトの他の関連記事を参照してください。