php教程 mysql教程_fetch_array與mysql_fetch_assoc區別
一直以來對這兩個函數的區別很模糊,只知道mysql_fetch_assooc()可以去除結果集中的重復值,在實際應用中一般都用mysql_fetch_assoc()。今天想到了這兩個函數索性就查了下他們的區別,進一步對其加深下了解。mysql_fetch_assoc() 函數從結果集中取得一行作為關聯數組。返回根據從結果集取得的行生成的關聯數組,如果沒有更多行,則返回 false。mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,
用字段名作 為鍵名。 如果結果中的兩個或以上的列具有相同字段名,最後一列將優先。要訪問同名的其它列,必須用該列 的數字索引
或給該列起個別名。對有別名的列,不能再用原來的列名訪問其內容(本例中的 'field')。 mysql_fetch_array -- 從結果集中取得一行作為關聯數組,或數字數組,或二者兼有。注釋:mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二個可選參數 MYSQL_ASSOC 完全相同。它僅僅返回關聯數組。這也是 mysql_fetch_array() 初始的工作方式。即:mysql_fetch_array($result,'MYSQL_ASSOC')與mysql_fetch_assoc($result)返回結果相同,提示:如果在關聯索引之外還需要數字索引,用 mysql_fetch_array()。
注釋:本函數返回的字段名是區分大小寫的。
mysql_fetch_assoc 得到的是關聯數組。
mysql_fetch_array 可以得到關聯數組也可以得到索引數組,也可以二者都有。
下面以一個例子進行說明它們的區別:
假如從數據庫教程取出一個用戶的用戶名和密碼
username password
test 123456
用assoc 結果是array([username]=>'test',[password]=>'123456')
用array 根據參數不同結果可能是以下三種之一
array([username]=>'test',[password]=>'123456')
array([0]=>'test',[1]=>'123456')
array([username]=>'test',[password]=>'123456',[0]=>'test',[1]=>'123456')
提示和注釋
注釋:mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二個可選參數 MYSQL_ASSOC 完全相同。它僅僅返回關聯數組。這也是 mysql_fetch_array() 初始的工作方式。
提示:如果在關聯索引之外還需要數字索引,用 mysql_fetch_array()。
注釋:本函數返回的字段名是區分大小寫的