2015-10-17 118 views
0

我今天在閱讀this documentation,看到輸出時感到困惑。瞭解PHP文檔代碼

的代碼行:

/* numeric array */ 
$row = $result->fetch_array(MYSQLI_NUM); 
printf ("%s (%s)\n", $row[0], $row[1]); 

/* associative array */ 
$row = $result->fetch_array(MYSQLI_ASSOC); 
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 

/* associative and numeric array */ 
$row = $result->fetch_array(MYSQLI_BOTH); 
printf ("%s (%s)\n", $row[0], $row["CountryCode"]); 

產生的結果爲:

Kabul (AFG) 
Qandahar (AFG) 
Herat (AFG) 

如果有環和data_seek()的組合,那麼我可以理解爲什麼輸出是每次都不同。上面的代碼的輸出不應該如此嗎?

Kabul (AFG) 
Kabul (AFG) 
Kabul (AFG) 

我錯過了什麼嗎?

+1

I認爲,每次獲取相同的結果集時,數組光標都會向前移動。循環獲取結果集中所有行的原因。除非你爲PDO使用'fetchAll'之類的東西,不知道mysqli。 – frz3993

+0

記錄集遊標正在進行與每個調用'fetch_array'與各種參數,所以這是它應該如何 – RamRaider

回答

0

你只需進一步調查一下。該頁面說這個函數「是mysqli_fetch_row()的擴展版本」,而通過下面的鏈接,你會發現「每次後續調用該函數都會返回結果集中的下一行」