簡體   English   中英

如何在PHP中返回從MySQL獲取的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM