|
<?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,這個(gè)函數(shù)是從結(jié)果集中取一行作為枚舉數(shù)據(jù),從和指定的結(jié)果標(biāo)識(shí)關(guān)聯(lián)的結(jié)果集中取得一行數(shù)據(jù)并作為數(shù)組返回。每個(gè)結(jié)果的列儲(chǔ)存在一個(gè)數(shù)組的單元中,偏移量從 0 開(kāi)始。 注意,這里是從0開(kāi)始偏移,也就是說(shuō)不能用字段名字來(lái)取值,只能用索引來(lái)取值,所以如下代碼是取不到值的:
while($row = mysql_fetch_row($res)){
echo $row['cid'].'::'.$row[1].”;
} //這里的$row['cid'] 取不到值。
mysql_fetch_array,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有,除了將數(shù)據(jù)以數(shù)字索引方式儲(chǔ)存在數(shù)組中之外,還可以將數(shù)據(jù)作為關(guān)聯(lián)索引儲(chǔ)存,用字段名作為鍵名。 也就是說(shuō)他得到的結(jié)果像數(shù)組一樣,可以用key或者索引來(lái)取值,所以
while($row = mysql_fetch_array($res)){
echo $row['cid'].'::'.$row[1].”;
}//這里$row['cid'],$row[1]都能得到相應(yīng)的值。
mysql_fetch_object,顧名思義,從結(jié)果集中取得一行作為對(duì)象,并將字段名字做為屬性。所以只有這樣才能取到值
while($row = mysql_fetch_object($res)){
echo $row->cid.'::'.$row->title.”";
}
mysql_fetch_assoc,從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,也就是說(shuō)這個(gè)函數(shù)不能像mysql_fetch_row那樣用索引來(lái)取值,只能用字段名字來(lái)取,所以
while($row = mysql_fetch_assoc($res)){
echo $row['cid'].'::'.$row[1].”;
} //$row[1]這樣是取不到值的
補(bǔ)充一點(diǎn):
mysql_fetch_array函數(shù)是這樣定義的:array mysql_fetch_array ( resource result [, int result_type]),返回根據(jù)從結(jié)果集取得的行生成的數(shù)組,如果沒(méi)有更多行則返回 FALSE。
mysql_fetch_array() 中可選的第二個(gè)參數(shù) result_type 是一個(gè)常量,可以接受以下值: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()函數(shù)在某種程度上可以算是mysql_fetch_row()與 mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外還有MYSQL_BOTH參數(shù),將得到一個(gè)同時(shí)包含關(guān) 聯(lián)和數(shù)字索引的數(shù)組。
在來(lái)說(shuō)句 $row = $db->fetch_array($query);
$db是人數(shù)據(jù)庫(kù)操作類(lèi),$db->fetch_array($query),fetch_array($query)是那個(gè)db類(lèi)里的方法,$row = $db->fetch_array($query)這句的意思是從記錄集$query中得到數(shù)據(jù)庫(kù)中的一行記錄。
不用類(lèi)可這樣實(shí)現(xiàn)
復(fù)制代碼 代碼如下:
$conn=@mysql_connect($host,$user,$pass);
@mysql_select_db($database,$conn);
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
$rows[]=$row;
}
php技術(shù):mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的區(qū)別,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。