[英]How to return an array fetched from MySQL in PHP
我試圖返回一個從存儲在PHP文件中的公共函數調用的數組。 我需要導出的返回數組為JSON格式。 我有以下代碼用於調用數組(在其他情況下可行),但輸出只是數組(phpMyAdmin中的sql返回所有數據)
這是應該返回數組的公共函數,該數組存儲在常規PHP類文件中。
public function getIssueList() {
$sql = "select * from IssueData";
$returnValue = array();
$result = $this->conn->query($sql); // makes the connection and executes the sql
if ($result != null) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (!empty($row)) {
$returnValue = $row;
}
}
return $returnValue;
}
然后我從下面的代碼調用public函數:
$result = $dao->getIssueList(); //opens the connection and calls the public function
echo $result;
但是我得到的回聲結果只是單詞“ Array”
上面的代碼可用於其他公共功能,但是在這種情況下,它僅返回一行,而不是我需要的多行。 另外,我需要將數組關聯。
可能是什么問題?
您可以json_encode( http://php.net/manual/en/function.json-encode.php )
echo json_encode($result);
您還必須將$ result返回為json_encode($ result),要正確填充數組,您必須執行$ returnValue [] = $ row;。
(您可能需要執行while循環來填充數組)
要獲取多行而不是僅一行,請使用while循環:
if ($result != null) {
$row = $result->fetch_array(MYSQLI_ASSOC);
while(!empy($row)){
$returnValue = array_merge($returnValue, $row);
$row = $result->fetch_array(MYSQLI_ASSOC);
}
return $returnValue;
}
好的,主要是我在使用echo而不是print_r。
還更改了以下代碼:
if ($result != null) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (!empty($row)) {
$returnValue = $row;
}
}
至:
if ($result != null) {
while ($returnValue[] = $result->fetch_array(MYSQLI_ASSOC));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.