English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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バージョン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