Position actuelle: Accueil> Derniers articles> Quelle est la raison de MySQLI :: $ Server_info renvoyant une valeur nulle généralement, quelles sont les erreurs courantes et les solutions correspondantes?

Quelle est la raison de MySQLI :: $ Server_info renvoyant une valeur nulle généralement, quelles sont les erreurs courantes et les solutions correspondantes?

gitbox 2025-06-21
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie du code n&#39;a rien à voir avec le contenu de l&#39;article,L&#39;espace réservé comme exemple</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ceci est un exemple de contenu qui n&#39;est pas pertinent au début de l&#39;article。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>mysqli::</span><span><span class="hljs-variable">$server_info</span></span><span> Quelle est généralement la cause de renvoyer une valeur nulle?,Quelles sont les erreurs courantes et les solutions correspondantes?</h1>

<p>Utilisé PHP de <code>mysqli

Dans le code ci-dessus, si $ mysqli-> connect_error n'est pas vide, cela signifie que la connexion a échoué. À l'heure actuelle, $ mysqli-> server_info peut être vide.

Erreur commune 1 : l'erreur de connexion provoque une défaillance de la connexion

Comme le nom d'utilisateur ou le mot de passe, l'adresse de la base de données, etc.

Erreur commune 2 : l'échec de la connexion lors de l'accès aux propriétés

Accéder directement à $ mysqli-> server_info , mais n'a pas déterminé si la connexion a réussi.

Erreur commune 3 : état d'objet anormal dans un environnement multithread ou asynchrone

L'état d'objet MySQLI est instable, ce qui peut entraîner des exceptions de lecture de propriété.

3. Solution

  1. Assurez-vous d'accéder à Server_info une fois la connexion réussie
    Vérifiez l'état de la connexion à l'aide de $ mysqli-> connect_error ou $ mysqli-> connect_errno .
  2. Utilisez le mécanisme de gestion des exceptions <br> Pour attraper des erreurs en activant MySqli_Report (mysqli_report_error | MySqli_Report_strict); pour éviter l'échec du silence.
  3. Confirmez que le serveur MySQL s'exécute normalement <br> Vérifiez l'état du serveur de base de données et confirmez que les informations de version sont disponibles.
  4. Évitez d'accéder aux propriétés après la fermeture de la connexion <br> Assurez-vous d'utiliser les propriétés pertinentes avant d'appeler Close () pour éviter les exceptions d'état d'objet.

4. Exemple de code d'amélioration

 </span><span><span class="hljs-title function_ invoke__">mysqli_report</span></span><span>(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'user'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);

    </span><span><span class="hljs-comment">// Confirmer que la connexion est réussie</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_errno) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"Échec de la connexion: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
    }

    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"MySQL Version du serveur: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->server_info;

    </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"message d&#39;erreur: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}

5. Résumé

Lorsque MySQLI :: $ Server_info renvoie une valeur nulle, la première chose à faire est de confirmer si la connexion MySQL est la raison la plus courante. Deuxièmement, faites attention au moment de l'accès à cette propriété et assurez-vous que l'objet MySQLI est dans un état de connexion valide. Enfin, l'utilisation rationnelle des mécanismes de rapport d'erreur et de capture d'exception peut aider à localiser et à résoudre rapidement les problèmes.

  • Étiquettes associées:

    mysqli