[請益] mysql_fetch_array 取出的陣列數

看板PHP作者 (ptt20000)時間13年前 (2011/07/27 20:48), 編輯推噓0(0013)
留言13則, 4人參與, 最新討論串1/9 (看更多)
各位好 小弟因mysql_fetch_array取出的陣列數感到疑惑 我下的SQL為 select A,B from test where C=1; 在myadmin下確實找到AB這兩個值 但是使用$X = mysql_fetch_array後 count($X) = 4 其中 $X[0] = A $X[1] = B $X[2] = 空白 $X[3] = 空白 請問搜尋兩個欄位,count後應該等於2 為什麼會等於4呢?? 而且最後兩個還是空白的 請問是哪邊錯了呢?? 感謝大大解惑... 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 117.19.220.98

07/27 21:38, , 1F
當你使用mysql_fetch_array()時,會給你二種傳回陣列。
07/27 21:38, 1F

07/27 21:39, , 2F
一個是mysql_fetch_row()的傳回欄位順序。
07/27 21:39, 2F

07/27 21:39, , 3F
另一個是mysql_fetch_assoc()的以欄位名為key值。
07/27 21:39, 3F

07/27 21:40, , 4F
所以假設你欄位是name和sex就會變成......
07/27 21:40, 4F

07/27 21:40, , 5F
$x[0],$x[1],$x['name'],$x['sex']所以是4個!
07/27 21:40, 5F

07/27 21:41, , 6F
也因此通常不是用row就是assoc,或者是物件的object。
07/27 21:41, 6F

07/27 21:41, , 7F
我個人是偏好使用mysql_fetch_object()取出來就是:
07/27 21:41, 7F

07/27 21:42, , 8F
$x->name,$x->sex這樣。
07/27 21:42, 8F

07/27 21:45, , 9F
所以您建議使用object嗎?
07/27 21:45, 9F

07/27 21:46, , 10F
row,object,array三者優劣?
07/27 21:46, 10F

07/27 21:47, , 11F
請問使用object的話要如何知道有幾個呢? 例如count()
07/27 21:47, 11F

07/28 21:17, , 12F
建議您用 mysqli 或是 PDO ...
07/28 21:17, 12F

07/28 23:22, , 13F
pdo不錯用...把之前寫mysql的函式改一改無痛使用...
07/28 23:22, 13F
文章代碼(AID): #1EC0a55H (PHP)
討論串 (同標題文章)
文章代碼(AID): #1EC0a55H (PHP)