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

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

Linda Hamilton
リリース: 2024-11-20 00:55:03
オリジナル
604 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート