Mysqli-select-query
提供:Dev Guides
MySQLi-選択クエリ
SQL SELECT コマンドは、MySQLiデータベースからデータを取得するために使用されます。 このコマンドは、mysql>プロンプトだけでなく、PHPなどのスクリプトでも使用できます。
構文
MySQLiテーブルからデータを取得するSELECTコマンドの一般的なSQL構文は次のとおりです-
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
- コンマで区切られた1つ以上のテーブルを使用して、WHERE句を使用してさまざまな条件を含めることができますが、WHERE句はSELECTコマンドのオプション部分です。
- 1つのSELECTコマンドで1つ以上のフィールドをフェッチできます。
- フィールドの代わりに星印(*)を指定できます。 この場合、SELECTはすべてのフィールドを返します。
- WHERE句を使用して、任意の条件を指定できます。
- SELECTがレコードを返し始める OFFSET を使用してオフセットを指定できます。 デフォルトでは、オフセットはゼロです。
- LIMIT 属性を使用して、返品の数を制限できます。
コマンドプロンプトからのデータの取得-
これは、SQL SELECTコマンドを使用してMySQLiテーブルtutorials_tblからデータをフェッチします。
例
次の例は、 tutorials_inf テーブルからすべてのレコードを返します-
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_inf;
+----+------+
| id | name |
+----+------+
| 1 | sai |
| 2 | kit |
| 3 | ram |
+----+------+
3 rows in set (0.00 sec)
mysql>
PHPスクリプトを使用したデータの取得
PHP関数* mysqli_query()に同じSQL SELECTコマンドを使用できます。 この関数はSQLコマンドの実行に使用され、後で別のPHP関数 mysqli_fetch_assoc()*を使用して、選択したすべてのデータをフェッチできます。 この関数は、連想配列、数値配列、またはその両方として行を返します。 行がもうない場合、この関数はFALSEを返します。
以下は、 tutorials_inf テーブルからレコードを取得する簡単な例です。
例
次の例を試して、tutorials_infテーブルのすべてのレコードを表示してください。
<html>
<head>
<title>Selecting Table in MySQLi Server</title>
</head>
<body>
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$dbname = 'TUTORIALS';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
if(! $conn ) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully<br>';
$sql = 'SELECT name FROM tutorials_inf';
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
</body>
</html>
行の内容は変数$ rowに割り当てられ、行の値が出力されます。
注-配列値を文字列に直接挿入する場合は、必ず中括弧を忘れないでください。
サンプル出力は次のようになります-
Connected successfully
Name: ram
Name: kit
Name: abc