English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_query()関数はデータベースに対して一度のクエリを実行します
mysqli_query()関数はクエリを表す文字列値をパラメータとして受け取り、データベース上で指定されたクエリを実行します。
mysqli_query($con, query)
序号 | パラメータ及び説明 |
---|---|
1 | con(必須) これはMySQL Serverとの接続を表すオブジェクトです。 |
2 | query(必須) これは実行するクエリを表す文字列値です。 |
3 | mode(オプション) これは結果モードを表す整数値です。mode(オプション)として設定できます。MYSQLI_USE_RESULTまたはMYSQLI_STORE_RESULTこのパラメータに値として渡されます。 |
失敗した場合にFALSEを返し、mysqli_query()でSELECT、SHOW、DESCRIBEまたはEXPLAINクエリを成功実行するとmysqli_resultオブジェクトが返され、他のクエリではTRUEが返されます。
他のクエリではこの関数は布尔値を返し、操作が/クエリが成功した場合true、さもなければfalse。
この関数は最初にPHPバージョン5で導入され、すべてのより高いバージョンで使用できます。
以下の例ではmysqli_query()関数の使い方(手続き型スタイル)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_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_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India")"); mysqli_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); mysqli_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); print("記録を挿入..."."\n"); //接続を閉じる mysqli_close($con); ?>
出力結果
テーブルを作成... 記録を挿入...
データベースのテーブルの内容を観察すると、以下のように挿入されたレコードが見られます:
mysql> select * from my_team; +------+------------+------------+----------------+-------------+ | ID | First_Name | Last_Name | Place_Of_Birth | Country | +------+------------+------------+----------------+-------------+ | 1 | Shikhar | Dhawan | Delhi | India | | 2 | Jonathan | Trott | CapeTown | SouthAfrica | | 3 | Kumara | Sangakkara | Matale | Srilanka | | 4 | Virat | Kohli | Delhi | India | +------+------------+------------+----------------+-------------+ 4 rows in set (0.00 sec)
オブジェクト指向のスタイルでは、この関数の文法は}}$con-> query();。以下は、オブジェクト指向スタイルでのこの関数の例です;
<?php $con = new mysqli("localhost", "root", "password", "mydb"); //レコードをplayersテーブルに挿入します $con-> query("CREATE TABLE IF NOT EXISTS players(First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))"); $con-> query("insert into players values('Shikhar', 'Dhawan', 'India')"); $con-> query("insert into players values('Jonathan', 'Trott', 'SouthAfrica')"); print("データの作成......"); //接続を閉じる $res = $con -> close(); ?>
出力結果
データの作成......
データベースのテーブルの内容を観察すると、以下のように挿入されたレコードが見られます:
mysql> select * from players; +------------+-----------+-------------+ | First_Name | Last_Name | Country | +------------+-----------+-------------+ | Shikhar | Dhawan | India | | Jonathan | Trott | SouthAfrica | +------------+-----------+-------------+ 2 rows in set (0.00 sec)
以下の例では、INSERTおよびSELECTクエリの結果を印刷します-
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_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テーブルに挿入します $res = mysqli_query($con, "insert into my_team values("1, 'Shikhar', 'Dhawan', 'Delhi', 'India")"); print("挿入クエリの結果: ",$res,"\n"); $res = mysqli_query($con, "insert into my_team values("2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); print("インサートクエリの結果: ".$res); $res = mysqli_query($con, "SELECT * FROM my_team"); print("SELECTクエリの結果: "); print_r($res); //接続を閉じる mysqli_close($con); ?>
出力結果
テーブルを作成... インサートクエリの結果: 1 インサートクエリの結果: 1SELECTクエリの結果: mysqli_result オブジェクト ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 2 [type] => 0 )
以下のように、データベースにplayersテーブルが作成され、データが入力されています:-
CREATE TABLE Players (Name VARCHAR(255), Age INT, Score INT); insert into Players values('Dhavan', 33, 9),('Rohit', 28, 26),('Kohli', 25, 50);
以下の例では、データベースに対するクエリを実行しています:
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); //複数のクエリを実行する $query = "SELECT * FROM players"; //レコードを検索する $res = mysqli_query($con, $query, MYSQLI_USE_RESULT); if ($res) { while ($row = mysqli_fetch_row($res)) { print("名前: ".$row[0]."\n"); print("年齢: ".$row[1]."\n"); } } //接続を閉じる mysqli_close($con); ?>
出力結果
名前: ダヴァン 年齢: 33 名前: ロヒト 年齢: 28 名前: コーリ 年齢: 25