2016-01-29 107 views
1
$row = $overview_response->fetch_array(MYSQLI_NUM); 

返回下面的一個數組:mysqli的PHP數組索引

Array ([0] => 12 [1] => username [2] => email [3] => a53ccb24bfb1135eb45e675464f948 [4] => Test message [5] => 1 [6] => Test subject [7] => 2016-01-29 15:35:02) 

我怎麼可能訪問參數,如唯一的用戶名?

之前一直在測試如下:

foreach ($row as $key) { 
    echo $key[1]; 
} 
+1

使用FETCH_ASSOC得到一個更易於管理的陣列,那麼你應該能夠做到$陣列[「用戶名」]; –

+0

echo $ row [1]; ?? – devpro

+0

@ BlakeA.Nichols明白了:) – stackxquestion

回答

0

$row是一個數組,因此您可以通過使用foreach()值走。 但是,數組的值不是數組。

所以此命令echo $key[1]無效,因爲它試圖訪問$key的第一個元素,但$key是一個字符串。

您可以使用喜歡的事,讓你的價值觀:

$id = $row[0]; 
$username = $row[1]; 
// and so on 
+0

現在我只剩下一個問題了,我以爲row會包含每個mysql元素。我怎麼能運行每個數組值的每個返回的數組索引的命令? – stackxquestion

+0

https://gyazo.com/8b73cf32838546bb8f4752b68c37fab4只有1個元素,但8個元素。而foreach實際上爲每個值運行。 – stackxquestion

+0

我的答案涵蓋了「我如何訪問參數」部分的問題,爲什麼它沒有按照您嘗試的方式工作。沒有得到正確的查詢結果是另一個問題。 – RST

0

您的代碼

$row = $overview_response->fetch_array(MYSQLI_NUM); 

返回到你的數組。您可以通過索引訪問數組中的鍵。我想username是關鍵1

$row = $overview_response->fetch_array(MYSQLI_NUM); 
var_dump($row[1]); 

這是simpliest方式的價值。

其他方式可以使用MYSQLI_ASSOC不變,這將返回,而不是數字鍵字符串鍵:

$row = $overview_response->fetch_array(MYSQLI_ASSOC); 
var_dump($row); 
// after that you can still access username by key, 
// but now it will be the name of a corresponding field 
var_dump($row['username']); // if field is called `username`