ホームページ >データベース >mysql チュートリアル >MySQLi INSERT ステートメントがデータベースを更新しないのはなぜですか?

MySQLi INSERT ステートメントがデータベースを更新しないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-20 00:55:03598ブラウズ

Why Isn't My MySQLi INSERT Statement Updating the Database?

MySQLi を使用したデータの挿入

MySQLi を使用してデータを挿入しようとすると、コードがデータベースを更新しないというシナリオが発生することがあります。デバッグ中にエラーが発生しないこと。この質問では、ユーザーは次のコードでこの問題に遭遇しました:

$stmt2 = $conn->prepare("INSERT INTO UserData (username, password) VALUES (?, ?)");
$username = /* $_POST["username"] */ "hi";
$password = /* $_POST["password"] */ "hey";
$stmt2->bind_param('s', $username);
$stmt2->bind_param('s', $password);
$stmt2->execute();

この問題は、bind_param() の誤った使用に起因しています。各変数を個別にバインドするのではなく、正しい構文を使用して一度にバインドする必要があります。修正されたコードは次のとおりです:

$stmt2 = $conn->prepare("INSERT INTO UserData (username, password) VALUES (?, ?)");
$username = /* $_POST["username"] */ "hi";
$password = /* $_POST["password"] */ "hey";
$stmt2->bind_param('ss', $username, $password);
$stmt2->execute();

さらに、PHP 5.6 以降を使用すると、スプレッド演算子 (...) により構文をさらに簡略化できます:

$data = ['user' => 'someUser', 'password' => 'secret'];
$stmt2->bind_param('ss', ...$data);

以上がMySQLi INSERT ステートメントがデータベースを更新しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。