Bei der Verwendung von PHP für MySQL -Datenbankvorgänge achten Entwickler in der Regel mehr auf die Abfrageergebnisse, z. B. die Anzahl der zurückgegebenen Zeilen oder die Frage, ob die Ausführung erfolgreich ist, und es ist einfach, ein nützliches Debugging -Tool zu ignorieren - das MySQLI :: $ -Info -Attribut. Nachdem einige Arten von SQL -Anweisungen ausgeführt wurden, kann diese Eigenschaft mehr Statistiken über die Ausführungsergebnisse zurückgeben und uns dabei helfen, die Auswirkungen einer Abfrage umfassendere zu verstehen.
MySQLI :: $ Info ist eine schreibgeschützte Eigenschaft der MySQLI- Klasse, mit der einige statistische Informationen der zuletzt ausgeführten SQL-Anweisung bereitgestellt werden. Sie eignen sich besonders für geänderte Anweisungen wie Einfügen , Aktualisieren und Ladedaten .
Der Rückgabewert dieser Eigenschaft ist eine Zeichenfolge, und das Inhaltsformat ist nicht behoben, enthält jedoch normalerweise Informationen wie die Anzahl der betroffenen Zeilen, die Anzahl der wiederholten Zeilen, die Anzahl der Warnleitungen und andere Informationen. Zum Beispiel:
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->query("UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL 30 DAY");
echo $mysqli->info;
Die folgenden Informationen können ausgegeben werden:
Rows matched: 15 Changed: 15 Warnings: 0
Dies zeigt uns, dass insgesamt 15 Datensätze übereinstimmen, 15 Datensätze geändert wurden und keine Warnung aufgetreten ist.
MySQLI :: $ Info gibt eine formatierte Zeichenfolge zurück. Im Folgenden finden Sie Schlüsselwörter der Rückgabe zurück:
Datensätze : Die Anzahl der verarbeiteten Datensätze (hauptsächlich in Lastdaten verwendet)
Duplikate : Die Anzahl der doppelten Datensätze (häufig in Einfügen ... auf doppelter Schlüsselaktualisierung )
Warnungen : Anzahl der Warnungen, die während der Ausführung erscheinen
Zeilen übereinstimmend : Anzahl der zu übereinstimmenden Zeilen (normalerweise zum Update oder Löschen verwendet)
Geändert : Die Anzahl der tatsächlich geänderten Zeilen (zeigt an, dass sich der Feldwert tatsächlich ändert)
Zum Beispiel:
$mysqli->query("INSERT INTO logs (event, created_at) VALUES ('login', NOW()), ('logout', NOW())");
echo $mysqli->info;
Die Ausgabe kann sein:
Records: 2 Duplicates: 0 Warnings: 0
Dies weist darauf hin, dass zwei Datensätze ohne Duplikation und ohne Warnung eingefügt wurden.
Durch die Kombination von MySQLI :: $ Info mit dem Protokollierungssystem können wir eine detaillierte Analyse der Auswirkungen von Datenbankoperationen durchführen. Zum Beispiel:
$mysqli->query("UPDATE products SET stock = stock - 1 WHERE id = 101");
$log = sprintf("Query info: %s", $mysqli->info);
file_put_contents("/var/log/db_ops.log", $log . PHP_EOL, FILE_APPEND);
Auf diese Weise kann die Anzahl der betroffenen Zeilen jedes Mal aufgezeichnet werden, wenn das Inventar aktualisiert wird, was bei der Post-Debugging und der Leistungsoptimierung hilft.
Es ist nur nach unterstützten Anweisungen sinnvoll : Wählen Sie Abfragen aus, die normalerweise leere Zeichenfolgen zurückgeben.
Es kann nicht durch einen Fehlerbehandlungsmechanismus ersetzt werden : Es handelt sich nicht um ein Fehlerberichterstattungsinstrument, sondern eine zusätzliche Informationen über die Auswirkungen der Ausführung.
Bei der Ausführung einer Mehrfachbeschäftigung wird nur die letzte Anweisung widerspiegelt : Wenn Sie Abfrage mit mehreren Statements verwenden, kann sie nur die Ausführung des letzten widerspiegeln.
Sprachversionsunterschiede : Die Struktur der Ausgangszeichenfolge kann zwischen MySQL- und PHP -Versionen geringfügig unterschiedlich sein.
MySQLI :: $ Info ist ein einfaches, aber praktisches Debugging-Tool, das bei der Ausführung von SQL-Anweisungen von Nicht-Mietern detaillierte Statistiken liefert. Es bietet wichtige Referenzdaten für Debugging, Protokollierung und Abfrageoptimierung. Bei Anwendungen, die sehr leistungsfähig oder auf Datenänderungen empfindlich sind, kann die Verwendung rational die Beobachtbarkeit des Systems erheblich verbessern.
Weitere offizielle Dokumentation zu dieser Eigenschaft finden Sie unter: https://gitbox.net/php/mysqli.info