mysqli_stmt::bind_result(): バインド変数の数が一致しません
準備されたステートメントを使用して PHP ログイン フォームを実装しようとすると、ユーザーは通常、「mysqli_stmt::bind_result(): Number」というエラーが発生します。バインド変数の数が準備されたステートメントのフィールドの数と一致しません。」このエラーは、クエリ結果の保存に使用されるバインド変数の数と、基になる SQL ステートメントによって返される実際のフィールド数との間に不一致があることを示します。
診断コード
$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?"); $username = $_POST['name']; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($username, $password); // Incorrect field binding $stmt->fetch();
訂正
上記のコードのフィールドに誤りがありますバインディング。 bind_result() メソッドは、SELECT ステートメントによって返される実際のフィールドを反映する必要があります。このシナリオでは、クエリはユーザー名とパスワードの 2 つのフィールドを返します。したがって、正しいコードは次のとおりです。
$stmt->bind_result($username, $password); // Corrected field binding
さらなるヒント
以上がPHP で「mysqli_stmt::bind_result()」が「バインド変数の数が一致しません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。