Ne pouvait pas extraire mysqli
Je fais tourner un serveur nginx avec PHP-FPM et MySQL. PHP MySQL et MySQLi extensions installées comme l'a confirmé par phpinfo()
. J'ai téléchargé mes scripts qui fonctionnent parfaitement sur localhost, et j'obtiens une erreur 500 lorsque je tente de charger la page. Mon nginx journaux montrent ceci:
2012/01/19 22:01:27 [erreur] 3393#0: *14 FastCGI envoyé dans stderr: "PHP Warning: mysqli::prepare(): impossible de récupérer mysqli dans /var/www/mydomain.com/chat/index.php sur la ligne 12
PHP Fatal error: Appel à un membre de la fonction execute() sur un non-objet dans /var/www/mydomain.com/chat/index.php sur la ligne 13" tout en lisant l'en-tête de réponse à partir de l'amont, du client: 82.32.181.151, serveur: mydomain.com, demande: "GET /chat/HTTP/1.1", en amont: "fastcgi://127.0.0.1:9000", l'hôte: "mydomain.com"
J'ai remplacé mon domaine réel avec mydomain.com
. Sur la ligne 12 de index.php j'ai ceci:
$stmt = $mysqli->prepare('SELECT r_id, name, room_pass, max_users FROM `rooms` ORDER BY name ASC');
Après que Google communique, j'ai trouvé un couple de causes. L'une est que je la fermeture prématurée de ma connexion de base de données, ce qui n'est pas elle. L'autre est que j'ai mélangé de la programmation orientée objet et fonctionnelle MySQLi appels, ce qui n'est pas le problème. Aussi, ma base de données les informations de connexion sont correctes.
Donc, je suis perplexe.
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que votre ligne 13 est en fait:
ce qui signifie que votre préparer l'appel a échoué et est retourné boolean FALSE pour
$stmt
. Depuis un booléen false n'est pas un objet, vous ne pouvez pas appeler des méthodes sur elle, d'où l'erreur.Essayer de faire le code:
Le problème est sur votre ligne 13. Il vous est probablement quelque chose comme
Mais maintenant, la variable que vous demandez à contenir une méthode
execute
n'est pas un objet.Des problèmes qui pourraient être la cause sont les suivants:
$stmt
mal, donc c'est un non initialisée var$mysqli->prepare
échoue.Savoir laquelle c'est par l'utilisation des fonctions d'erreur de mysqli...