PHP函数不能正常编写语句

时间:2014-05-28 01:58:46

标签: php mysqli

您好,我正在使用一项功能来检查用户信息,但现在我无法使用它。

  

错误:致命错误:在a上调用成员函数fetch_array()   非对象

public function HasMessageReadData($id)
{
    $GLOBALS['mysqli']->query("use ".$GLOBALS['db_ucp']."");
    $stmt = $GLOBALS['mysqli']->prepare("SELECT COUNT(*) FROM message_read WHERE msg = ? AND id = ?");
    $stmt->bind_param("ii", $id, $this->id);
    $stmt->execute();
    $message = $result->fetch_array(MYSQLI_BOTH);

    if($message[0] > 0)
        return true;
    else
        return false;
}

1 个答案:

答案 0 :(得分:2)

基本上你没有在任何地方实例化$result,但你试图通过以下方式调用它:

$result->fetch_array(MYSQLI_BOTH);

哪会导致您的错误。你可能想要使用类似的东西:

$stmt->fetch_array(MYSQLI_BOTH);

您可以选择执行此类操作

public function HasMessageReadData($id)
{
    $GLOBALS['mysqli']->query("use ".$GLOBALS['db_ucp']."");
    $stmt = $GLOBALS['mysqli']->prepare("SELECT COUNT(*) FROM message_read WHERE msg = ? AND id = ?");
    $stmt->bind_param("ii", $id, $this->id);
    $stmt->execute();
    $result = $stmt->get_result();
    $message = $result->fetch_array(MYSQLI_BOTH);

    if($message[0] > 0)
        return true;
    else
        return false;
}



阅读:Dynamically bind param array mysqli...