程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中返回查詢數據集四種方法

php中返回查詢數據集四種方法

編輯:關於PHP編程

php中 mysql_result mysql_fetch_row mysql_fetch_array mysql_fetch_object四種函數的詳細說明

mysql教程_result():優點在於使用方便;其缺點在於功能少,一次調用只能獲取結果數據集中的一行元素,對較大型的數據庫教程效率較低;

mysql_result() 函數返回結果集中一個字段的值。

如果成功,則該函數返回字段值。如果失敗,則返回 false。

語法
mysql_result(data,row,field)參數 描述
data 必需。規定要使用的結果標識符。該標識符是 mysql_query() 函數返回的。
row 必需。規定行號。行號從 0 開始。
field 可選。規定獲取哪個字段。可以是字段偏移值,字段名或 table.fieldname。

如果該參數未規定,則該函數從指定的行獲取第一個字段。
 

<?php教程
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db", $con);

$sql = "select * from person";
$result = mysql_query($sql,$con);

echo mysql_result($result,0);

mysql_close($con);

?>

mysql_fetch_row():優點在於執行效率在4種方法中最高;不足在於只能用數字作為屬性索引來獲得屬性值,在使用時非常容易出現混淆;

mysql_fetch_row() 函數從結果集中取得一行作為數字數組。

語法
mysql_fetch_row(data)參數 描述
data 必需。要使用的數據指針。該數據指針是從 mysql_query() 返回的結果。

說明
mysql_fetch_row() 從和結果標識 data 關聯的結果集中取得一行數據並作為數組返回。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。

依次調用 mysql_fetch_row() 將返回結果集中的下一行,如果沒有更多行則返回 false。

返回值
返回根據所取得的行生成的數組,如果沒有更多行則返回 false。
例子

<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person where lastname='adams'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

mysql_close($con);
?>輸出:

array
(
[0] => adams
[1] => john
[2] => london
)


mysql_fetch_array():執行效率同樣高,同mysql_fetch_row()相差無幾,並界可以用屬性名方式直接獲得屬性值,因此在實際應用中最常用;

定義和用法
mysql_fetch_array() 函數從結果集中取得一行作為關聯數組,或數字數組,或二者兼有

返回根據從結果集取得的行生成的數組,如果沒有更多行則返回 false。

語法
mysql_fetch_array(data,array_type)參數 描述
data 可選。規定規定要使用的數據指針。該數據指針是 mysql_query() 函數產生的結果。
array_type 可選。規定返回哪種結果。可能的值:

mysql_assoc - 關聯數組
mysql_num - 數字數組
mysql_both - 默認。同時產生關聯和數字數組
 
提示和注釋
注釋:mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。

提示:有很重要的一點必須指出,用 mysql_fetch_array() 並不明顯比用 mysql_fetch_row() 慢,而且還明顯提供了更多的值。

注釋:本函數返回的字段名是區分大小寫的。
例子

<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person where lastname='adams'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_array($result));

mysql_close($con);
?>輸出類似:

array
(
[0] => adams
[lastname] => adams
[1] => john
[firstname] => john
[2] => london
[city] => london
)

mysql_fetch_object():采用了面向對象思想,在設計思路上更為先進,如果習慣於用面向對象的思路來寫程序,則會很自地選擇它。其次,該方法的優點還體現在,對於結構較為負責的數據結果,在邏輯上更為清晰。

mysql_fetch_object() 函數從結果集(記錄集)中取得一行作為對象。

若成功的話,本函數從 mysql_query() 獲得一行,並返回一個對象。如果失敗或沒有更多的行,則返回 false。

語法
mysql_fetch_object(data)參數 描述
data 必需。要使用的數據指針。該數據指針是從 mysql_query() 返回的結果。
提示和注釋
注釋:每個隨後對 mysql_fetch_object() 的調用都會返回記錄集中的下一行。

注釋:mysql_fetch_object() 與 mysql_fetch_array() 類似,只有一點區別 - 返回的是對象而不是數組。間接地,也意味著只能通過字段名來訪問數組,而不是偏移量。
例子

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person";
$result = mysql_query($sql,$con);

while ($row = mysql_fetch_object($result))
  {
  echo $row->firstname . "<br />";
  }

mysql_close($con);
?>輸出:

john
george
thomas

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved