Aus der Dokumentation: "For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_query() will return a mysqli_result object."
Die Fehlermeldung wird ausgegeben, wenn die Funktion dieses Versprechen aus irgendeinem Grunden nicht einhalten kann.
Mögliche Gründe sind zum Beispiel, dass der MySQL-Server aufgrund eines Bugs abgestürzt ist oder wegen Stromausfall nicht mehr erreichbar ist. Insofern hat das Programm nur bedingt Einfluss darauf, ob die Anfrage erfolgreich verarbeitet wird oder nicht.