php函數(shù)mysql_fetch_row、assoc、array、object的區(qū)別

字號(hào):


    一、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']取不到值,$row[1]可以取到。
    二、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]這樣是取不到值的,$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_row和mysql_fetch_assoc的功能加起來(lái)就是mysql_fetch_array。
    四、mysql_fetch_object
    顧名思義,從結(jié)果集中取得一行作為對(duì)象,并將字段名字做為屬性。所以只有這樣才能取到值:
    while($row = mysql_fetch_object($res)){
    echo $row->cid.'>>>'.$row->title."
    ";
    }