「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 単一の MySQLi ステートメントで複数のクエリを準備できますか?

単一の MySQLi ステートメントで複数のクエリを準備できますか?

2024 年 11 月 8 日に公開
ブラウズ:677

Can I Prepare Multiple Queries in a Single MySQLi Statement?

単一の MySQLi ステートメントでの複数のクエリの準備

単一の MySQLi ステートメントで複数のクエリを準備することはできません。各 mysqli_prepare() 呼び出しで準備できるクエリは 1 つだけです。

複数のクエリを実行するための代替アプローチ

複数のクエリを一度に実行する必要がある場合は、次のように作成できます。

$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmtUser->bind_param("ssss", $id, $username, $pw, $email);
$stmtProc->bind_param("ss", $id, $idp);

$stmtUser->execute();
$stmtProc->execute();

$stmtUser->close();
$stmtProc->close();

エラー処理

エラー「非オブジェクトのメンバー関数の呼び出し」は通常、prepare() が失敗したときに発生します。 。これは通常、後続のコードではなく、プリペアド ステートメント自体のエラーが原因です。

トランザクション サポート

複数のクエリが一緒に実行されることを確認したい場合、またはまったくそうではありません。MySQLi はトランザクションをサポートしています。 mysqli_begin_transaction() 関数と mysqli_commit() 関数を使用して、トランザクション境界を制御できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3