ホームページ >データベース >mysql チュートリアル >すべてのデバッグ チェックに合格したにもかかわらず、MySQLi の挿入が失敗するのはなぜですか?
MySQLi を使用したデータの挿入
このコードはすべてのデバッグ チェックを実行しているように見えますが、データベースへの新しいデータの挿入に失敗します。これを段階的に分析してみましょう。
このコードは、「username」が「UserData」テーブルにすでに存在するかどうかを確認しようとします。そうでない場合は、新しい行の追加が試行されます。ただし、挿入部分で問題が発生します。
問題の特定
問題は、挿入ステートメントのバインド パラメーターの宣言方法にあります。個々の変数を複数回 ($username、$password を 2 回など) 渡す代わりに、対応する型と一緒に渡す必要があります。
Solution
bind_param 関数変数自体の前に変数の型が来ることを期待します。したがって、パラメーターをバインドする正しい方法は次のとおりです:
$stmt2->bind_param('ss', $username, $password);
また、PHP 5.6 以降を使用している場合は、スプレッド演算子 (...):
$data = ['user' => 'someUser', 'password' => 'secret']; $stmt2->bind_param('ss', ...$data);パラメータが正しくバインドされると、挿入は成功するはずです。質問で提供されているコードには、混乱を招く可能性がある、または不要なコメントがいくつか含まれていることに注意してください。わかりやすくするために削除することをお勧めします。
以上がすべてのデバッグ チェックに合格したにもかかわらず、MySQLi の挿入が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。