PHP Sql,返回一行

时间:2016-03-16 14:34:38

标签: php mysql arrays json fetch

我有以下代码调用DB函数,该函数从表中检索所有行,然后在JSON中回显它们。

$key = $db->getKeyPermissions();

    if ($key != false) {
        // use is found
        $response["error"] = FALSE;
        $response["key"]["endpoint_name"] = $key["endpoint_name"];
        $response["key"]["live"] = $key["live"];
        $response["key"]["activity_name"] = $key["activity_name"];
        echo json_encode($response);
    } else {

这是数据库功能

public function getKeyPermissions()
    {
        $stmt           = $this->conn->prepare("SELECT * FROM key_permissions WHERE 1");
        if ($stmt->execute()) {
            $key = $stmt->get_result()->fetch_assoc();
            $stmt->close();
            return $key;
        } else {
            return NULL;
        }
    }

这一切都很好,只是它只返回第一行然后停止。请注意,您必须循环fetch_assoc(),但我无法使其正常工作。我希望将所有行推送到$key并返回,但所有尝试都会导致数组转换和非对象错误。有人可以一路帮助我吗?

编辑:

public function getKeyPermissions()
{
    $stmt           = $this->conn->prepare("SELECT * FROM key_permissions WHERE 1");
    if ($stmt->execute()) {
        $key = array();

        while($row = $stmt->get_result()->fetch_assoc()) { //Call to a member function fetch_assoc() on a non-object
            $key .= $row; // Array to string conversion 
        }

        $stmt->close();
        return $key;
    } else {
        return NULL;
    }
}

1 个答案:

答案 0 :(得分:3)

您希望一次完全get_result只要有行:

fetch_assoc