English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本教程

PHP上級教程

PHP & MySQL

PHPリファレンスマニュアル

PHP mysqli_multi_query() 関数の用法および例

PHP MySQLi 参考マニュアル

mysqli_multi_query()関数は、データベースに対する1つまたは複数のクエリを実行します。複数のクエリはセミコロンで区切られます。

定義と用法

mysqli_multi_query()関数はクエリを示す文字列値をパラメータとして受け取り、データベース上で実行します。/指定されたクエリを実行します。

SQL文を実行します。または、セミコロンで区切られた複数のSQL文を実行します。
実行結果の最初の結果セットを取得するには、mysqli_use_result()またはmysqli_store_result()関数を使用してください。次の結果セットを読み取るには、mysqli_more_results()およびmysqli_next_result()関数を使用してください。

文法

mysqli_multi_query($con, $query)

パラメータ

番号パラメータ及び説明
1

con(必須)

これはMySQLサーバーとの接続を示すオブジェクトです。

2

query(必須)

これは実行するクエリを示す文字列値です。

3

mode(オプション)

これは結果モードを示す整数値です。以下を使用できます。MYSQLI_USE_RESULT または MYSQLI_STORE_RESULT このパラメータに値として渡されます。

返り値

 最初のSQL文が失敗した場合、FALSEを返します。バッチ実行SQL文の場合、mysqli_next_result()関数をまず呼び出さなければなりません。次の文のエラーデータを取得するために。

PHPバージョン

この関数は最初にPHPバージョン5に導入され、すべてのより高いバージョンで使用できます。

オンラインサンプル

以下の例では、mysqli_multi_query()関数の使い方(手続き型スタイル)-

<?php
   //接続を確立
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('ラフマン', 30),('Sarmista', 27)";
   mysqli_multi_query($con, $query);
   print("Data added......");
   //接続を閉じ
   mysqli_close($con);
?>

出力結果

Data added......

如果您观察数据库中表的内容,则可以看到插入的记录,如下所示:

mysql> select * from players;
+------------+-----------+-------------+
| First_Name | Last_Name | Country     |
+------------+-----------+-------------+
| Shikhar    | Dhawan    | India       |
| Jonathan   | Trott     | SouthAfrica |
+------------+-----------+-------------+
2 rows in set (0.00 sec)

オンラインサンプル

オブジェクト指向スタイルでは、この関数の構文は以下の通りです$con-> multi_query();。以下はオブジェクト指向スタイルでのこの関数の例です;

<?php
   $con = new mysqli("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('ラフマン', 30),('Sarmista', 27)";
   //playersテーブルに記録を挿入します
   $con->multi_query($query);
   print("Data Created......");
   //接続を閉じ
   $res = $con -> close();
?>

出力結果

Data added......

オンラインサンプル

以下の例では、テーブルを作成し、以下を使用してmysqli_multi_query()クエリを順次実行してテーブルにデータを埋め込みます-

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_multi_query($con, "CREATE TABLE IF NOT EXISTS my_team(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("テーブルが作成されました ..."."\n");
   //記録をmy_teamテーブルに挿入します
   mysqli_multi_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')");
   mysqli_multi_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   mysqli_multi_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
   mysqli_multi_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')");
   print("記録を挿入しています..."."\n");
   //接続を閉じ
   mysqli_close($con);
?>

出力結果

テーブルが作成されました...
レコードを挿入...

オンラインサンプル

以下のように、データベースにテーブルPlayersが作成され、データが入力されています。-

CREATE TABLE Players (Name VARCHAR(255), 年齢 INT, スコア INT);
insert into Players values('ダヴァン', 33, 90),('ロヒト', 28, 26),('コーリ', 25, 50);

以下の例では、mysqli_multi_query関数結果セットを検索-

<?php
   //接続を確立
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //多重クエリを実行
   $query = "SELECT * FROM players;CREATE TABLE Test (Name VARCHAR(255), 年齢 INT);insert into Test values('ラージュ', 25),('ラフマン', 30),('ラマニ', 22);SELECT * FROM Test";
   $res = mysqli_multi_query($con, $query);
   if ($res) {
      do {
         if ($result = mysqli_use_result($con)) {
            while ($row = mysqli_fetch_row($result)) {
               print("名前: ".$row[0]."\n");
               print("年齢: ".$row[1]."\n");
            }
            mysqli_free_result($result);
         }
         if (mysqli_more_results($con)) {
            print("\n");
         }
      } while (mysqli_next_result($con));
   }
   mysqli_close($con);
?>

出力結果

名前: ダヴァン
年齢: 33
名前: ロヒト
年齢: 28
名前: コーリ
年齢: 25
名前: ラージュ
年齢: 25
名前: ラフマン
年齢: 30
名前: ラマニ
年齢: 22

PHP MySQLi 参考マニュアル