単一の mysqli ステートメントで複数のクエリを実行できますか?

Linda Hamilton
リリース: 2024-10-29 03:57:29
オリジナル
170 人が閲覧しました

Can You Execute Multiple Queries in a Single mysqli Statement?

単一の mysqli ステートメント内の複数のクエリ

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

質問:

複数のクエリを実行する単一の mysqli ステートメントを構築することは可能ですか?例:

<code class="php">mysqli->prepare("query1 ...1,2,3 param...; query2...4,5 param...");
or 
mysqli->prepare("insert into ...1,2,3 param...; insert into...4,5 param...");</code>
ログイン後にコピー

このような構築を試みると、「... 内の非オブジェクトでメンバー関数 binding_param() を呼び出します」というエラーが発生します

<code class="php">$stmt = $sql->getQueryPrepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?); INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmt->bind_param("ssssss",$id, $username, $pw, $email, $id, $idp);

$stmt->execute();
$stmt->close(); </code>
ログイン後にコピー

答え:

準備されたステートメントは 1 つの MySQL クエリのみを実行できます。ただし、複数のステートメントを個別の変数に準備することはできます。

<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");</code>
ログイン後にコピー

これらのステートメントは続けて実行できます。両方のクエリが正常に実行されたことを確認する必要がある場合は、トランザクションの使用を検討してください。

「非オブジェクトでのメンバー関数の呼び出し」エラーは、通常、エラーではなく、prepare() ステートメントの失敗を示していることに注意してください。後続のコードに問題があります。

以上が単一の mysqli ステートメントで複数のクエリを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!