PHP の mysqli 拡張機能を使用してデータベースにデータを挿入しようとすると、次のエラーが発生します:
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in E:\XAMPP\htdocs\account\lib\register.php on line 73
このエラーは、INSERT クエリの各フィールドにバインド変数を指定しても、クエリが結果を返さない場合に発生します。この問題を解決するには、結果をバインドする行を削除する必要があります:
<code class="php">$stmt->bind_result($user, $pw);</code>
変更されたコード スニペットは次のようになります:
<code class="php">$conn->prepare("INSERT INTO login(user, pass) VALUES(?, ?)"); $stmt->bind_param("ss", $user, $pw); $stmt->execute();</code>
以上がINSERT クエリ中に「バインド変数の数が準備されたステートメントのフィールドの数と一致しません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。