3 回答

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

TA貢獻1798條經驗 獲得超7個贊
mysql_fetch_array()提取結果行為關聯數組,數字數組或兩者。它返回與獲取的行相對應的字符串數組,如果沒有更多行,則返回FALSE。返回數組的類型取決于$ result_type的定義方式。
通過使用MYSQL_NUM,您只能獲取數字索引(如$ row [0],$ row 1等),即數字數組。
通過使用MYSQL_ASSOC,您只能獲得關聯索引(如$ row [“ id”],$ row [“ name”]等),即關聯數組。
通過使用MYSQL_BOTH(默認),您將獲得一個具有關聯索引和數字索引的數組。(如$ row [0],$ row [“ name”]等),即數值數組和關聯數組。
mysql_fetch_assoc()提取結果行作為關聯數組。(列名作為鍵)。
mysql_fetch_object()獲取結果行作為一個對象。
它返回一個對象,該對象的屬性與獲取的行相對應,并將內部數據指針向前移動。
對我來說,使用mysql_fetch_assoc()有很多優點,因為您可以使用數組函數,例如array_walk和uasort()。

TA貢獻1775條經驗 獲得超11個贊
假設我們有下表
名稱國家/地區代碼
----- ----------
孟加拉國BD
美國普韋布洛
美國阿瓦達
$ query =“選擇名稱,CountryCode來自城市”;
$結果= mysqli_query($連接,$查詢)
mysqli_fetch_object(數據可以作為對象獲取)
while ($obj = mysqli_fetch_object($result)) {
printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
mysqli_fetch_assoc(作為關聯數組獲取,即鍵)
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
mysqli_fetch_array(數字和關聯)
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"]);
}
添加回答
舉報