首頁  >  文章  >  後端開發  >  php中如何傳回查詢資料集

php中如何傳回查詢資料集

coldplay.xixi
coldplay.xixi原創
2020-11-13 13:41:084302瀏覽

php中傳回查詢資料集的方法:1、使用函數【mysql_result()】查詢;2、使用函數【mysql_fetch_row()】查詢;3、使用函數【mysql_fetch_array()】查詢。

php中如何傳回查詢資料集

php中傳回查詢資料集的方法:

1、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(&#39;could not connect: &#39; . 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);
?>

2、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(&#39;could not connect: &#39; . mysql_error());
}
$db_selected = mysql_select_db("test_db", $con);
$sql = "select * from person where lastname=&#39;adams&#39;";
$result = mysql_query($sql, $con);
print_r(mysql_fetch_row($result));
mysql_close($con);
?>

輸出:

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

# 3、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(&#39;could not connect: &#39; . mysql_error());
}
$db_selected = mysql_select_db("test_db", $con);
$sql = "select * from person where lastname=&#39;adams&#39;";
$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():採用了物件導向思想,在設計思路上更為先進,如果習慣於用物件導向的思路來寫程式,則會很自地選擇它,其次,該方法的優點也體現在,對於結構較為負責的資料結果,在邏輯上更為清晰。

4、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(&#39;could not connect: &#39; . 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

相關免費學習推薦:

php程式設計(影片)

#

以上是php中如何傳回查詢資料集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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