亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql_fetch_array,mysql_fetch_assoc,mysql_fetch

mysql_fetch_array,mysql_fetch_assoc,mysql_fetch

繁華開滿天機 2019-12-04 14:58:34
這些功能非常相似:mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()我最近開始使用mysql_fetch_object,因為我正在使用PHP做更多的OOP。但是人們對于哪種最佳使用方法和原因有何看法,以及最佳使用哪種方案。感謝您的想法!
查看完整描述

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很可能取決于您如何開發應用程序:如果到處使用對象,第二個對象可能是最合適的。


如果使用數組作為數據容器,則可以使用第一個數組。


查看完整回答
反對 回復 2019-12-04
?
元芳怎么了

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()。


查看完整回答
反對 回復 2019-12-04
?
繁星淼淼

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"]);

}


查看完整回答
反對 回復 2019-12-04
  • 3 回答
  • 0 關注
  • 672 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號