3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
mysql_fetch_array 將為您提供可以作為鍵的數(shù)組:
列的編號(hào)和名稱(如果使用) MYSQL_BOTH
列名稱,使用MYSQL_ASSOC-在這種情況下,您將獲得與使用時(shí)相同的結(jié)果mysql_fetch_assoc
如果使用,則僅數(shù)字(取決于查詢中列的順序) MYSQL_NUM
使用列名稱索引結(jié)果可能是最有用的解決方案-至少易于使用。
但是在一種情況下,通過(guò)select子句中的字段位置為結(jié)果建立索引很有趣:一種情況是:當(dāng)您有多個(gè)具有相同名稱或別名的列時(shí)。
在這種情況下,由于數(shù)組中不能包含兩個(gè)具有相同索引的條目,因此您將只能使用列名作為索引來(lái)訪問(wèn)這些列之一。
對(duì)于其他具有相同名稱的列,您將必須使用數(shù)字索引。
這種情況可能是我唯一要使用的mysql_fetch_array情況-為了避免這種情況,我寧愿在查詢中使用別名-更加清楚。
mysql_fetch_assoc 將為您提供一個(gè)數(shù)組,將列名作為鍵,將數(shù)據(jù)作為值。
沒什么可說(shuō)的,實(shí)際上。
并且mysql_fetch_object將獲得您的objetcs作為回報(bào)。
在之間進(jìn)行選擇mysql_fetch_assoc,mysql_fetch_object很可能取決于您如何開發(fā)應(yīng)用程序:如果到處使用對(duì)象,第二個(gè)對(duì)象可能是最合適的。
如果使用數(shù)組作為數(shù)據(jù)容器,則可以使用第一個(gè)數(shù)組。

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
mysql_fetch_array()提取結(jié)果行為關(guān)聯(lián)數(shù)組,數(shù)字?jǐn)?shù)組或兩者。它返回與獲取的行相對(duì)應(yīng)的字符串?dāng)?shù)組,如果沒有更多行,則返回FALSE。返回?cái)?shù)組的類型取決于$ result_type的定義方式。
通過(guò)使用MYSQL_NUM,您只能獲取數(shù)字索引(如$ row [0],$ row 1等),即數(shù)字?jǐn)?shù)組。
通過(guò)使用MYSQL_ASSOC,您只能獲得關(guān)聯(lián)索引(如$ row [“ id”],$ row [“ name”]等),即關(guān)聯(lián)數(shù)組。
通過(guò)使用MYSQL_BOTH(默認(rèn)),您將獲得一個(gè)具有關(guān)聯(lián)索引和數(shù)字索引的數(shù)組。(如$ row [0],$ row [“ name”]等),即數(shù)值數(shù)組和關(guān)聯(lián)數(shù)組。
mysql_fetch_assoc()提取結(jié)果行作為關(guān)聯(lián)數(shù)組。(列名作為鍵)。
mysql_fetch_object()獲取結(jié)果行作為一個(gè)對(duì)象。
它返回一個(gè)對(duì)象,該對(duì)象的屬性與獲取的行相對(duì)應(yīng),并將內(nèi)部數(shù)據(jù)指針向前移動(dòng)。
對(duì)我來(lái)說(shuō),使用mysql_fetch_assoc()有很多優(yōu)點(diǎn),因?yàn)槟梢允褂脭?shù)組函數(shù),例如array_walk和uasort()。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
假設(shè)我們有下表
名稱國(guó)家/地區(qū)代碼
----- ----------
孟加拉國(guó)BD
美國(guó)普韋布洛
美國(guó)阿瓦達(dá)
$ query =“選擇名稱,CountryCode來(lái)自城市”;
$結(jié)果= mysqli_query($連接,$查詢)
mysqli_fetch_object(數(shù)據(jù)可以作為對(duì)象獲取)
while ($obj = mysqli_fetch_object($result)) {
printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
mysqli_fetch_assoc(作為關(guān)聯(lián)數(shù)組獲取,即鍵)
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
mysqli_fetch_array(數(shù)字和關(guān)聯(lián))
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
printf("%s (%s)\n", $row[0], $row[1]);
}
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
添加回答
舉報(bào)