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 サイトの他の関連記事を参照してください。