同mysql_result()一樣,mysql_fetch_row()也可以用來獲取查詢結果集,其區別在於函數的返回值不是一個字符串,而是一個數組。函數定義如下。
復制代碼 代碼如下:
array mysql_fetch_row(int result)
參數說明如下。
result:由函數mysql_query()或mysql_db_query()返回的結果標識,用來指定所要獲取的數據的SQL語句類型。
函數返回值如下。
成功:一個數組,該數組包含了查詢結果集中當前行數據信息,數組下標范圍0~記錄屬性數−1,數組中的第i個元素值為該記錄第i個屬性上的值。
失敗:false。
下面的mysql_fetch_row()使用示例功能同5.5.1中示例。
復制代碼 代碼如下:
1 <!------使用mysql_fetch_row()來獲取數據:mysql_fetch_row.php------>
2 <?php
3 //連接並選擇到數據庫服務器
4 $connection = mysql_connect ("localhost", "root", "password");
5 mysql_select_db("Books", $connection);
6 //查詢數據
7 $query="SELECT * FROM Computers ";
8 $query.="WHERE price >= 20";
9 //echo $query."<br>";
10 $result=mysql_query($query,$connection);
11 //用mysql_fetch_row()獲得數據,並輸出
12 while($row=mysql_fetch_row($result))
13 {
14 echo "書名: ".$row[1]."<br>";
15 echo "價格: ".$row[2]."<br>";
16 echo "出版日期: ".$row[3]."<br>";
17 echo "<br>";
18 }
19 ?>
mysql_fetch_row()獲得當前行的數據信息,在被引用後,自動滑動至下一行。本例中在第12行對其的引用為:
復制代碼 代碼如下:
while($row=mysql_fetch_row($result))
在這個循環中,每一次mysql_fetch_row()都獲得當前行數據,並賦值給數組$row,然後自動滑向下一行;在取出最後一行後,函數將返回false,循環結束。這樣,就可以把結果集中的所有數據逐行取出並顯示。
注意
mysql_fetch_row()返回結果數組的下標對應著不同屬性上的值,且只能通過下標方式,而不能使用屬性名方式獲得屬性上的值,在實際應用中容易引起混亂,一定要仔細使用。同時,應注意在使用中不要使用越界下標。
示例正確運行的結果如下。
復制代碼 代碼如下:
書名: 數據結構
價格: 20
出版日期: 2001-01-01
書名: C語言
價格: 23
出版日期: 1998-04-04
書名: PHP入門技術
價格: 22
出版日期: 2005-05-01