首頁  >  文章  >  資料庫  >  MySQL 查詢數據

MySQL 查詢數據

巴扎黑
巴扎黑原創
2016-12-07 13:18:191178瀏覽

MySQL 資料庫使用SQL SELECT語句來查詢資料。

你可以透過 mysql> 指令提示視窗中在資料庫中查詢數據,或是透過PHP腳本來查詢數據。

以下為在MySQL資料庫中查詢資料通用的SELECT 語法:

SELECT column_name,column_name
FROM table_name[WHERE Clause][OFFSET M ][LIMIT N]

,表格之間使用逗號(,)分隔,並使用WHERE語句來設定查詢條件。

SELECT 指令可以讀取一條或多筆記錄。

你可以使用星號(*)來取代其他字段,SELECT語句會傳回表格的所有字段資料。

你可以使用 WHERE 語句來包含任何條件。

你可以透過OFFSET指定SELECT語句開始查詢的資料偏移量。預設偏移量為0。

你可以使用 LIMIT 屬性來設定回傳的記錄數。

透過命令提示字元取得資料

以下實例將傳回資料表runoob_tbl的所有記錄:

[root@localhost runoob]# mysql -u root -pEnter password:

Welcome to the MariaDB itor. g.
Your MariaDB connection id is 2
Server version: 5.5.50-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

'helh' help。 Database changed
MariaDB [RUNOOB]> select * from runoob_tbl
   -> ;+-----------+---------------+----- ----------+-----------------+
| runoob_id | runoob_title  | runoob_author | submission_date |
+--------- --+---------------+---------------+--------------- --+
|         1 | Learn PHP     | John Poul     | 2016-11-26      |
|        2 | LearnSQL 1. |
|         3 | JAVA Tutorial | Sanjay        | 2007-05-06      |
|         4 | mysql         | cakin24       | 2016-11-26      |
+-----------+---------------+------+---------------+-- ---------+-----------------+4 rows in set (0.00 sec)

MariaDB [RUNOOB]>


使用PHP腳本來取得資料

方法一:

首先,使用PHP函數mysql_query()及SQL SELECT指令來取得數據,mysql_query函數用於執行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, $dbdbpass); ! $conn )

{

 die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title.     FROM runoob_tbl';

mysql_select_db('RUNOOB') ;
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
 die('Could not get data: ' . mysql_error());sql
}
while($row = mysql_error());sql retval, MYSQL_ASSOC))
{
   echo "Tutorial ID :{$row['runoob_id']}  
".
        "Title: {$row['runoob_title'o]o ".
        "Submission Date : {$row['submission_date']}
".
        "---------------- ----------------
";
}
echo "Fetched data successfullyn";
mysql_close($conn);
?>


以上實例中,讀取的每行記錄賦值給變數$row,然後再印出每個值。

注意:記住如果你需要在字串中使用變量,請將變數置於花括號。

在上面的範例中,PHP mysql_fetch_array()函數第二個參數為MYSQL_ASSOC, 當設定為該參數,查詢結果會傳回關聯數組,你可以使用欄位名稱作為數組的索引。

 

方法二:

PHP提供了另外一個函數mysql_fetch_assoc(), 此函數從結果集中取得一行作為關聯數組。 傳回根據從結果集取得的行產生的關聯數組,如果沒有更多行,則傳回 false。

下面實例使用了mysql_fetch_assoc()函數來輸出資料表runoob_tbl的所有記錄:

$dbhost = 'localhost:3036'user
pass$dbdb = '
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}
= 'b. runoob_title,
              runoob_author, submission_date
       FROM runoob_tbl';
my);
if(! $retval )
{
 die('Could not get data : ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval))
{
   echo "Tutorial ID :{$row['runoob_id']]  echo "Tutorial ID :{$row['runoob_id']]   bro> "  | row['runoob_title']}
".
        "Author: {$row['runoob_author']}
".
        "Submission Date :0. "--------------------------------
";
}
echo "Fetched data successfullyn";
mysql_close ($conn);
?>


 

方法三:

也可以使用常數MYSQL_NUM 作為PHP mysql_fetch_array()函數的第二個參數,傳回數字數組。

以下實例使用MYSQL_NUM參數顯示資料表runoob_tbl的所有記錄:

$dbhost = 'localhost:3036';$dbuser = 'root'; mysql_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

 die('Could not connect: ' . mysql_error());
}
$ = 'SELECT runoo s  runoob_author , submission_date
       FROM runoob_tbl';

mysql_select_db('RUNOOB');
$retval = mysql_query( $sql, $conn ); mysql_error ());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
   echo "Tutorial ID :{$row[0]} 
".T 1遠 }
".
        "Author: {$row[2]}
".
        "Submission Date : {$row[3]}
".
   -----------------------
";
}
echo "Fetched data successfullyn";
mysql_close($conn);
?>


以上三個實例輸出結果都一樣,輸出結果如下:



 

記憶體釋放

在我們執行完SELECT語句後,釋放遊標記憶體是個很好的習慣。可以透過PHP函數mysql_free_result()來實現記憶體的釋放。

以下實例示範了此函數的使用方法。此實例僅在上一個實例的基礎上加了mysql_free_result($retval);這一語句。

$dbhost = 'localhost:3036';

$dbuser = 'root';MySQL 查詢數據$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbdbpass); ! $conn )

{

 die('Could not connect: ' . mysql_error());

}

$sql = 'SELECT runoob_id, runoob_title.     FROM runoob_tbl';

mysql_select_db('RUNOOB') ;$retval = mysql_query( $sql, $conn );

if(! $retval )

{
 die('Could not get data: ' . mysql_error());
}
while($row = mysql_error());
}
while($row =m. , MYSQL_NUM))
{
   echo "Tutorial ID :{$row[0]}  
".
        "Title: {$row[1]}
".
    "Title: {$row[1]}
".
   }
".
        "Submission Date : {$row[3]}
".
        "------------------------- -------
";
}mysql_free_result($retval);echo "Fetched data successfullyn";
mysql_close($conn);
?>




陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn