mysqli错误:不能使用mysqli_result类型的对象作为数组

时间:2014-05-07 10:19:16

标签: php

我的代码出了什么问题?

$stmt = $db->prepare("SELECT * FROM allfriend WHERE friendOf = ?");

$stmt->bind_param('s', $userId);

    if($stmt->execute()){
    $result = $stmt->get_result();
    while ($obj = $result->fetch_object()) {
        $result[] = $obj;
    }

    echo json_encode($result);
}

2 个答案:

答案 0 :(得分:0)

您正尝试将变量添加到现有对象实例,就好像它是一个数组:

$result[] = $obj;

为该阵列选择其他名称

$result = $stmt->get_result();
while ($obj = $result->fetch_object()) {
    $output[] = $obj;
}
echo json_encode($output);

或者,如果您不对$obj执行任何操作:

$output = $result->fetch_all();
echo json_encode($output);

答案 1 :(得分:0)

$result = $stmt->get_result();  

$ result已用于获取SQL预准备语句的结果。 您为阵列使用了相同的名称。 尝试使用名称'output []'

例如: -

 $output[] = $obj;