Die Überwachung des Ausführungsstatus von SQL -Abfragen ist entscheidend für das Debugieren und Optimieren der Leistung bei der Entwicklung von PHP -Anwendungen. Die MySQLI -Erweiterung bietet uns mehrere Möglichkeiten, mit der MySQL -Datenbank zu interagieren, in der die Funktion MySQLI :: $ info ein leistungsstarkes Tool zum Erhalt detaillierter Informationen über die zuletzt ausgeführte SQL -Abfrage ist. In diesem Artikel wird vorgestellt, wie die Funktion MySQLI :: $ info verwendet wird, um den SQL -Ausführungsstatus in Echtzeit zu überwachen.
MySQLI :: $ Info ist eine Eigenschaft der PHP MySQLI -Klasse, die detaillierte Informationen zur Interaktion mit der Datenbank liefert, insbesondere nachdem die Abfrage ausgeführt wurde. Durch diese Eigenschaft können Entwickler den Status der Ausführung von SQL -Anweisungen einschließlich der Anzahl der betroffenen Zeilen, Warninformationen usw. erhalten.
Diese Eigenschaft wird hauptsächlich in den folgenden Szenarien verwendet:
Erhalten Sie statistische Informationen nach SQL -Abfrageausführung
Überprüfen Sie, ob es während der SQL -Ausführung Warnungen gibt
Holen Sie sich die Anzahl der betroffenen Zeilen (z. B. nach einer Aktualisierung oder Löschung)
MySQLI :: $ Info ist eine schreibgeschützte Eigenschaft, die eine Nachricht zurückgibt, die sich mit der Ausführung der letzten SQL-Anweisung bezieht. Die grundlegende Verwendung ist wie folgt:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen Sie eine Datenbankverbindung</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">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob 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_error) {
</span><span><span class="hljs-keyword">die</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-comment">// implementierenSQLAbfrage</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET status = 'active' WHERE last_login > '2025-01-01'"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>) === </span><span><span class="hljs-literal">TRUE</span></span><span>) {
</span><span><span class="hljs-comment">// AusgabeSQLimplementieren状态</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQLimplementieren成功: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->info;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQLimplementieren失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
}
</span><span><span class="hljs-comment">// Schließen Sie die Verbindung</span></span><span>
</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-meta">?></span></span><span>
</span></span>Im obigen Beispiel können wir nach der Ausführung der Update- Anweisung die Details der SQL-Ausführung über $ mysqli-> Info erhalten. Wenn SQL erfolgreich ausgeführt wird, wird eine Information über die Anzahl der betroffenen Zeilen zurückgegeben. Wenn die SQL -Ausführung fehlschlägt, gibt sie eine Fehlermeldung aus.
Der Rückgabewert von MySQLI :: $ Info enthält normalerweise Folgendes:
Anzahl der betroffenen Zeilen : Zum Beispiel für Vorgänge wie Einfügen , Aktualisieren , Löschen usw. gibt MySQLI :: $ Info die Anzahl der betroffenen Zeilen zurück.
Anzahl der Warnungen : Wenn bei der Ausführung von SQL eine Warnung auftritt, kann der zurückgegebene Inhalt die Anzahl der Warnungen anzeigen.
Weitere Abfrageinformationen : Für bestimmte Abfragen kann MySQLI :: $ Info auch andere Ausführungsinformationen zurückgeben.
Zum Beispiel :
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET status = 'active' WHERE last_login > '2025-01-01'"</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$mysqli</span></span><span>->info; </span><span><span class="hljs-comment">// zurückkehren:Records updated: 50</span></span><span>
</span></span>In diesem Beispiel gibt MySQLI :: $ Info eine Nachricht zurück, die angibt, dass 50 Datensätze aktualisiert wurden.
Um die Echtzeitüberwachung des SQL-Ausführungsstatus zu realisieren, können wir ständig Abfrageinformationen über MySQLI :: $ Info erhalten und nach jeder SQL-Operation überprüfen. Diese Methode eignet sich besonders zum Debuggen oder Leistungsanalyse während der Entwicklungsphase.
Wenn Sie beispielsweise mehrere SQL -Abfragen in Stapeln ausführen, können wir den Effekt der einzelnen Operationen überwachen, indem wir den Rückgabewert von MySQLI :: $ Info nach jeder Abfrage aufzeichnen:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$queries</span></span><span> = [
</span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]')"</span></span><span>,
</span><span><span class="hljs-string">"UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01'"</span></span><span>,
</span><span><span class="hljs-string">"DELETE FROM users WHERE id = 101"</span></span><span>
];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$queries</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$query</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Abfrageimplementieren成功: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->info . </span><span><span class="hljs-string">"<br>"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Abfrageimplementieren失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>In diesem Beispiel geben wir bei der Ausführung einer Abfrage sofort den Ausführungsstatus der aktuellen SQL-Anweisung über $ mySQLI-> Info aus. Dies ist sehr hilfreich für Stapeloperationen oder eine komplexe Transaktionsverarbeitung und kann uns helfen, die Ausführungsgebnisse in Echtzeit zu überwachen.
Nur für die letzte SQL -Anweisung anwendbar : MySQLI :: $ Info kann nur Feedback zur letzten ausgeführten SQL -Anweisung geben. Wenn Sie mehrere Abfragen im selben Skript ausführen, wird die Ausführungsinformationen der letzten Abfrage nur zurückgegeben.
Datenbankverbindungsproblem : Wenn ein Problem mit der Datenbankverbindung vorliegt, gibt MySQLI :: $ Info möglicherweise keine gültigen Informationen zurück. Sie sollten daher sicherstellen, dass die Datenbankverbindung bei der Verwendung normal ist.
Fehler und Warnungen : Mysqli :: $ Info wird hauptsächlich verwendet, um einen Überblick über die Ausführung zu erhalten. Wenn Sie detaillierte Fehlerinformationen benötigen, sollten Sie das Attribut von MySQLI :: $ Fehler verwenden.
MySQLI :: $ Info ist eine sehr praktische Eigenschaft, die den Entwicklern helfen kann, den Ausführungsstatus von SQL -Abfragen in Echtzeit zu überwachen. Durch die Nutzung dieser Eigenschaft können Sie nach der Durchführung von SQL -Operationen detaillierte Ausführungsinformationen erhalten, wodurch Entwickler besser debuggen und den Code optimieren können. Insbesondere in komplexen Datenbankvorgängen und Stapelabfragen kann MySQLI :: $ Info wichtige Feedback -Informationen bereitstellen, damit Entwickler entsprechende Anpassungen vorgenommen werden können.
Wenn Sie eine PHP-Anwendung erstellen, die häufige SQL-Operationen erfordert, verbessert die Echtzeitüberwachung in Kombination mit MySQLI :: $ Info Ihre Debugging- und Optimierungseffizienz erheblich.