mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的區別

  • 作者: admin
  • 發布日期: 2014-01-28 10:33:15
  • 點擊:

 
應用代碼如下:
 
<?php 
$link=mysql_connect('localhost','root',”); 
mysql_select_db('abc',$link); 
$sql = “select * from book”; 
$result = mysql_query($sql); 
while($row = mysql_fetch_row($result)) 
echo $row['cid'].'::'.$row[1].'<br>'; 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
echo $row['cid'].'::'.$row[1].'<br>'; 
$result = mysql_query($sql); 
while($row = mysql_fetch_object($result)) 
echo $row->cid.'::'.$row->title.”<br>”; 
$result = mysql_query($sql); 
while($row = mysql_fetch_assoc($result)) 
echo $row['cid'].'::'.$row[1].'<br>'; 
?> 
 
分析: 
mysql_fetch_row,這個函數是從結果集中取一行作為枚舉數據,從和指定的結果標識關聯的結果集中取得一行數據并作為數組返回。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。 注意,這里是從0開始偏移,也就是說不能用字段名字來取值,只能用索引來取值,所以如下代碼是取不到值的: 
while($row = mysql_fetch_row($res)){ 
echo $row['cid'].'::'.$row[1].”; 
} //這里的$row['cid'] 取不到值。 
mysql_fetch_array,從結果集中取得一行作為關聯數組,或數字數組,或二者兼有,除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。 也就是說他得到的結果像數組一樣,可以用key或者索引來取值,所以 
while($row = mysql_fetch_array($res)){ 
echo $row['cid'].'::'.$row[1].”; 
}//這里$row['cid'],$row[1]都能得到相應的值。 
mysql_fetch_object,顧名思義,從結果集中取得一行作為對象,并將字段名字做為屬性。所以只有這樣才能取到值 
while($row = mysql_fetch_object($res)){ 
echo $row->cid.'::'.$row->title.”"; 
mysql_fetch_assoc,從結果集中取得一行作為關聯數組,也就是說這個函數不能像mysql_fetch_row那樣用索引來取值,只能用字段名字來取,所以 
while($row = mysql_fetch_assoc($res)){ 
echo $row['cid'].'::'.$row[1].”; 
} //$row[1]這樣是取不到值的 
補充一點: 
mysql_fetch_array函數是這樣定義的:array mysql_fetch_array ( resource result [, int result_type]),返回根據從結果集取得的行生成的數組,如果沒有更多行則返回 FALSE。 
mysql_fetch_array() 中可選的第二個參數 result_type 是一個常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。其中: 
1、mysql_fetch_assoc($result)==mysql_fetch_array($result,MYSQL_ASSOC); 
2、mysql_fetch_row($result)==mysql_fetch_array($result,MYSQL_NUM); 
所以mysql_fetch_array()函數在某種程度上可以算是mysql_fetch_row()與 mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外還有MYSQL_BOTH參數,將得到一個同時包含關 聯和數字索引的數組。 
在來說句 $row = $db->fetch_array($query); 
$db是人數據庫操作類,$db->fetch_array($query),fetch_array($query)是那個db類里的方法,$row = $db->fetch_array($query)這句的意思是從記錄集$query中得到數據庫中的一行記錄。
 
 
不用類可這樣實現 代碼如下:
 
 
$conn=@mysql_connect($host,$user,$pass); 
@mysql_select_db($database,$conn); 
$query=mysql_query($sql); 
while($row=mysql_fetch_array($query)){ 
$rows[]=$row; 
 
mysql_fetch_row,這個函數是從結果集中取一行作為枚舉數據;
mysql_fetch_array,從結果集中取得一行作為關聯數組,或數字數組,或二者兼有
mysql_fetch_assoc,從結果集中取得一行作為關聯數組,也就是說這個函數不能像mysql_fetch_row那樣用索引來取值,只能用字段名字來取
 
mysql_fetch_row(),mysql_fetch_array()
 
  這兩個函數,返回的都是一個數組,區別就是第一個函數返回的數組是只包含值,我們只能$row[0],
$row[1],這樣以數組下標來讀取數據,而mysql_fetch_array()返回的數組既包含第一種,也包含鍵值
對的形式,我們可以這樣讀取數據,(假如數據庫的字段是 username,passwd):
 
  $row['username'], $row['passwd']
 
  而且,如果用($row as $kay => $value)來操作的話,還以直接取得數據庫的字段名稱。

網站備案所需要提供的資料清單

目前,國內每個網站都必須具有信息產業部批準的備案號才能正常開通,否則只有選擇國外的服務器。
欧美性XXXX极品高清HD,永久免费A片在线观看全网站,免费观看成人A片免费不卡在线,美女黄18以下禁止观看免费的