-3

Hi there I'm using a function to check user messages but right now I am unable to get it work.

error: Fatal error: Call to a member function fetch_array() on a non-object

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;
}
Tiny
  • 27,221
  • 105
  • 339
  • 599
EchO
  • 1,274
  • 1
  • 10
  • 17

1 Answers1

2

Basically you haven't instantiated $result anywhere, yet you try to call it via:

$result->fetch_array(MYSQLI_BOTH);

Which results in your error. You'd probably want to use something like:

$stmt->fetch_array(MYSQLI_BOTH);

Optionally you could do something like this

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;
}



Reading: Dynamically bind param array mysqli...

Darren
  • 13,050
  • 4
  • 41
  • 79