[PHP][MySQL] fetch_array與fetch_assoc與fetch_row的比較

正常情況下我們用PHP再擷取MySQL的資料時,我們都習慣會使用 fetch_array() 來把資料從資料表中讀出,而這個功能會把資料存入陣列之中,而陣列中的Key值將會以數列與實際Key值來儲存。

但有些時候我們希望陣列不要重複取得資料,或者是我們希望他單純以數值命名……………..

請直接參照範例閱讀,簡單省事!

範例表格

UID NAME EMAIL PASSWORD
1 RicharLin Richar@richarlin.tw 1234567

 

使用 fetch_array() :

array(
  [0] => '1'
  [UID] => '1'
  [1] => 'RicharLin'
  [Name] => 'RicharLin'
  [2] => 'Richar@richarlin.tw'
  [EMAIL] => 'Richar@richarlin.tw'
  [3] => '1234567'
  [PASSWORD] => '1234567'
)

使用 fetch_assoc() :

array(
  [UID] => '1'
  [Name] => 'RicharLin'
  [EMAIL] => 'Richar@richarlin.tw'
  [PASSWORD] => '1234567'
)

使用 fetch_row() :

array(
  [0] => '1'
  [1] => 'RicharLin'
  [2] => 'Richar@richarlin.tw'
  [3] => '1234567'
)

後記:

其實正常情況下寫程式都習慣會用fetch_array(),因為它是最通用的使用方式,但有些時候如果你需要將一大筆輸出的資料轉換成JSON時,fetch_array()就會顯得有點累贅了…使用fetch_assoc()就可以獲得比較精簡的資料陣列。

而有些時候如果你需要將輸出的陣列依照編號使用時fetch_row()也將會是一個很適合的方式,可以輕易的計算數量並且按照數字依序進行,無疑是個不錯的選擇。

雖然平常沒遇到特殊的狀況時不會想到assoc和row,但是近期自己在寫程式的時候確實遇到了,所以特別將這幾個用法記錄下來!

PHP.NET : http://php.net/manual/en/mysqli-result.fetch-array.php

發表迴響