phpmysqli

call to a member function execute() on a non-object


My script containing that error is this:

$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN ('.$in_list.')');
        $stmt->execute();
        $stmt->bind_result($libelle,$activite,$adresse,$tel,$lat,$lng);

The php version running on the server (not localhost) is 5.2.17


Solution

  • $stmt is supposed to be an object with the method execute().
    Seems like $this->db->prepare() is not returning the good result.

    If $this->db is a mysqli() object you should bind the parameters like that:

    if ($stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN (?)')) {
      $stmt->bind_param("s", $in_list);
      $stmt->execute();
      // ...
    }