pourquoi suis-je une erreur de fichier mysqli/mysqli_driver.php?
Je viens de téléchargé mon projet à mon serveur de site web et j'obtiens ce message d'erreur lorsque je clique sur mon bouton "soumettre" pour mon journalisation en forme.
A PHP Error was encountered
Severity: Warning
Message: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given
Filename: mysqli/mysqli_driver.php
Line Number: 315
Je n'ai absolument aucune erreur sur mon serveur local et je suis complètement perplexe sur ce qu'est le problème. si quelqu'un pourrait s'il vous plaît aider je serais grandement apprécié et beaucoup de respect.
Mon projet est à l'aide de codeigniters cadre.
- votre message d'erreur vous informe que votre
mysqli
connexion estboolean
, ce qui veut probablement direfalse
, ce qui signifie l'échec de la connexion. Vous devez vérifier votre connexion. - j'ai été en mesure de faire disparaître l'erreur en changeant ma database.php fichier le changement de mon pilote de mysqli pour mysql. je ne sais pas pourquoi cela fonctionne, on pourrait penser que mysqli serait très bien fonctionner. maintenant, quand j'appuie sur le bouton de connexion, il est coincé sur mon login_validation fonction et la page s'affiche en blanc. maintenant, je n'ai aucune idée de ce à regarder ou à corriger. il fonctionne parfaitement bien sur mon serveur local.
- double possible de mysqli_real_escape_string() s'attend à ce paramètre 1 pour être mysqli
Vous devez vous connecter pour publier un commentaire.
Aller à
mysqli_driver.php
à la Ligne n ° 315 et mettre une marque en façe de la commande pour supprimer l'avertissement.À partir de:
À:
Si la valeur que vous échapper est un nombre entier, puis utiliser intval() au lieu de:
Ce sera NULLE en Zéro
@
pour supprimer l'erreur. Votre code suivant ne fonctionnera pas de façon inattendue, ou vous la laissez ouverte à des attaques par Injection SQL. Vous avez besoin de trouver la cause de cette erreur (probablement une base de données d'échec de la connexion) et le fixer.mysqli_real_escape_string()
est unmysqli
objet de connexion. Si c'est une valeur booléenne de la connexion de base de données a échoué ce qui est presque certainement une borne d'erreur.Au lieu de masquer les avertissements avec @, vérifiez que conn_id n'est pas faux:
changement
comme ça
Ma solution a été d'initialiser la connexion si elle n'est pas disponible.
Changement de ligne n ° 315:
J'ai rencontré ce problème aussi.
Wolfgang solution fonctionne bien pour moi.
Et si vous utiliser codeIgniter, modifier la base de données de config
$db['default']['autoinit'] = TRUE;
peut également résoudre le problème.