MySQL データベースは SQL SELECT ステートメントを使用してデータをクエリします。
mysql> コマンド プロンプト ウィンドウを使用してデータベース内のデータをクエリしたり、PHP スクリプトを使用してデータをクエリしたりできます。
以下は、MySQL データベース内のデータをクエリするための一般的な SELECT 構文です:
SELECT 列名,列名
FROM テーブル名[WHERE 句][OFFSET M][LIMIT N]
クエリでは 1 つ以上のテーブルを使用できます。ステートメントを使用し、テーブルを区切るにはコンマ (,) を使用し、クエリ条件を設定するには WHERE ステートメントを使用します。
SELECT コマンドは 1 つ以上のレコードを読み取ることができます。
アスタリスク (*) を使用して他のフィールドを置き換えることができ、SELECT ステートメントはテーブル内のすべてのフィールド データを返します。
WHERE ステートメントを使用して任意の条件を含めることができます。
OFFSET を使用して、SELECT ステートメントがクエリを開始するデータ オフセットを指定できます。デフォルトでは、オフセットは 0 です。
LIMIT 属性を使用して、返されるレコードの数を設定できます。
コマンド プロンプトを介してデータを取得します
次の例は、データ テーブル runoob_tbl のすべてのレコードを返します:
[root@localhost runoob]# mysql -u root -pパスワードを入力してください:
MariaDB モニターへようこそ コマンドはで終わります。 ; または g。
MariaDB 接続 ID は 2 です
サーバー バージョン: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and Others。
「help;」または「h」と入力します。 ' ヘルプを表示します。現在の入力ステートメントをクリアするには、「c」と入力します。
MariaDB [(none)]> テーブル名と列名の補完に RUNOOBReading テーブル情報を使用します
- を使用して、この機能をオフにできます。 A
データベースが変更されました
MariaDB [RUNOOB]> select * from runoob_tbl
-> ;+----------+---------------+ -- -------------+----------------+
| runoob_title |
+---- -- ------+--------------+--------------+----------- - -----+
| PHP を学ぶ | 2016 年 11 月 26 日 |
| 05 -06 |
| Cakin24 ------------+-----------------+4 行セット (0.00 秒)
MariaDB [RUNOOB]>
PHP スクリプトを使用してデータを取得する
方法 1:
まず、PHP 関数 mysql_query() と SQL SELECT コマンドを使用して、SQL コマンドを実行します。
次に、PHP 関数 mysql_fetch_array() を使用して、クエリされたデータを処理します。
mysql_fetch_array() 関数は、結果セットから行を連想配列、数値配列、またはその両方としてフェッチします。 結果セットから取得した行から生成された配列を返します。クエリ結果がない場合は false を返します。
次の例では、データテーブル runoob_tbl からすべてのレコードを読み取ります。
データテーブル runoob_tbl のすべてのレコードを表示するには、次の例を試してください。
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if (! $conn )
{
die('接続できませんでした: ' .mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, submit_date
FROM runoob_tbl';
mysql_select_db('RUNOOB' );
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('データを取得できませんでした: ' . mysql_error());
}
while($row = mysql_fetch_array( $retval, MYSQL_ASSOC))
{
echo "チュートリアル ID :{$row['runoob_id']}
".
"タイトル: {$row['runoob_title']}
".
"著者: {$row['runoob_author']}
".
" "提出日: {$row['submission_date']}
".
" "-------- ----------
";
}
echo "データを正常に取得しましたn";
mysql_close($conn);
?>
上記の例では、読み取られたレコードの各行が変数 $row に割り当てられ、各値が出力されます。
注: 文字列内で変数を使用する必要がある場合は、変数を中括弧で囲んでください。
上記の例では、PHP mysql_fetch_array() 関数の 2 番目のパラメーターが MYSQL_ASSOC に設定されている場合、クエリ結果は配列のインデックスとしてフィールド名を使用できます。
方法 2:
PHP は、結果セットから行を連想配列としてフェッチする別の関数 mysql_fetch_assoc() を提供します。 結果セットから取得した行に基づいて連想配列を返します。行がない場合は false を返します。
次の例では、mysql_fetch_assoc() 関数を使用してデータテーブル runoob_tbl のすべてのレコードを出力します。
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = ' rootpassword' ;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('接続できませんでした: ' . mysql_error());
}
$sql = ' SELECT runoob_id , runoob_title,
runoob_author, submit_date
FROM runoob_tbl';
mysql_select_db('RUNOOB');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
死ぬ('できるかもしれない)データを取得できません: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval))
{
echo "チュートリアル ID :{$row['runoob_id']}
".
" "タイトル: {$row['runoob_title']}
".
" "著者: {$row['runoob_author']}
".
" "投稿日: {$row['submission_date ']} ".
" "----------------------------
}
echo "データを正常に取得しましたn";
mysql_close($conn);
?>
方法 3:
定数 MYSQL_NUM を PHP mysql_fetch_array() 関数の 2 番目のパラメータとして使用することもできます。数値配列を返します。
次の例では、MYSQL_NUM パラメータを使用して、データ テーブル runoob_tbl:
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword' のすべてのレコードを表示します。 ;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('接続できませんでした: ' .mysql_error());
}
$sql = 'SELECT runoob_id 、 runoob_title、
runoob_author、submission_date
FROM runoob_tbl';
mysql_select_db('RUNOOB');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('取得できませんでしたデータ: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
echo "チュートリアル ID :{$row[0]}
".
"タイトル: {$row[ 1]}
".
" "著者: {$row[2]}
".
" "提出日: {$row[3]}
" "---- ------------------------
";
}
echo "データを正常に取得しましたn" ;
mysql_close($conn) ;
?>
上記 3 つの例の出力結果は次のとおりです。
メモリ解放
SELECT ステートメントを実行した後。 、カーソルのメモリを解放することは良い習慣です。メモリの解放は、PHP 関数 mysql_free_result() を通じて実現できます。
次の例は、この関数の使用法を示しています。この例では、前の例に基づいてステートメント mysql_free_result($retval); を追加するだけです。
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if (! $conn )
{
die('接続できませんでした: ' .mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, submit_date
FROM runoob_tbl';
mysql_select_db('RUNOOB' );$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('データを取得できませんでした: ' . mysql_error());
}
while($row = mysql_fetch_array($ retval, MYSQL_NUM))
{
echo "チュートリアル ID :{$row[0]}
".
"タイトル: {$row[1]}
".
"著者: {$row [2]}
".
" "提出日: {$row[3]}
".
" "------ -------- ------------
";
}mysql_free_result($retval);echo "データを正常に取得しましたn";
mysql_close($conn);
? >