Aktueller Standort: Startseite> Neueste Artikel> Was ist der Grund für MySQLI :: $ server_info, der einen Nullwert zurückgibt, was normalerweise verursacht wird. Was sind die gemeinsamen Fehler und entsprechenden Lösungen?

Was ist der Grund für MySQLI :: $ server_info, der einen Nullwert zurückgibt, was normalerweise verursacht wird. Was sind die gemeinsamen Fehler und entsprechenden Lösungen?

gitbox 2025-06-21
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Platzhalter als Beispiel</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dies ist ein Beispiel für Inhalte, das zu Beginn des Artikels nicht relevant ist。"</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> Was ist normalerweise die Ursache für die Rückgabe eines Nullwerts?,Was sind die gemeinsamen Fehler und entsprechenden Lösungen??</h1>

<p>Im Einsatz PHP von <code>mysqli

Wenn $ mysqli-> connect_error nicht leer ist, bedeutet dies, dass die Verbindung fehlgeschlagen ist. Zu diesem Zeitpunkt kann $ mysqli-> server_info leer sein.

Häufiger Fehler 1 : Der Verbindungsfehler verursacht einen Verbindungsfehler

Wie Benutzername oder Passwort, Datenbankadresse usw.

Häufiger Fehler 2 : Die Verbindung ist beim Zugriff auf Eigenschaften fehlgeschlagen

Greifen Sie direkt auf $ mysqli-> server_info zu, haben jedoch nicht festgestellt, ob die Verbindung erfolgreich war.

Häufiger Fehler 3 : Objektzustandszustand in Multithread- oder asynchroner Umgebung abnormal

Der MySQLI -Objektzustand ist instabil, was zu Ausnahmen von Eigentumslesung führen kann.

3. Lösung

  1. Stellen Sie sicher, dass Sie auf Server_info zugreifen, nachdem die Verbindung erfolgreich ist
    Überprüfen Sie den Verbindungsstatus mit $ mysqli-> connect_error oder $ mysqli-> connect_errno .
  2. Verwenden Sie Ausnahmehandhabungsmechanismus <br> Fehlern durch Einschalten von MySQLI_Report (mysqli_report_error | mysqli_report_strict); Um das Stilleversagen zu vermeiden.
  3. Bestätigen Sie, dass der MySQL -Server normal ausgeführt wird <br> Überprüfen Sie den Datenbankserverstatus und bestätigen Sie, dass die Versionsinformationen verfügbar sind.
  4. Vermeiden Sie den Zugriff auf Eigenschaften, nachdem die Verbindung geschlossen wurde. <br> Stellen Sie sicher, dass Sie relevante Eigenschaften verwenden, bevor Sie Close () aufrufen, um die Ausnahmen von Objektzuständen zu vermeiden.

4. Beispielverbesserungscode

 </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">// Bestätigen Sie, dass die Verbindung erfolgreich ist</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">"Verbindung ist fehlgeschlagen: "</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 Serverversion: "</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">"Fehlermeldung: "</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. Zusammenfassung

Wenn MySQLI :: $ server_info einen Nullwert zurückgibt, ist es als erstes zu bestätigen, ob die MySQL -Verbindung erfolgreich ist, der häufigste Grund. Achten Sie zweitens auf den Zeitpunkt des Zugriffs auf diese Eigenschaft und stellen Sie sicher, dass sich das MySQLI -Objekt in einem gültigen Verbindungszustand befindet. Schließlich kann die rationale Verwendung von Mechanismen zur Fehlerberichterstattung und Ausnahmeerfassungsmechanismen dazu beitragen, Probleme schnell zu lokalisieren und zu lösen.