Aktueller Standort: Startseite> Neueste Artikel> Vermeiden Sie die FAQ von Fehlern bei der Verwendung von MySQLI :: $ Info in PHP

Vermeiden Sie die FAQ von Fehlern bei der Verwendung von MySQLI :: $ Info in PHP

gitbox 2025-05-28

Was ist MySQLI :: $ Info?

MySQLI :: $ Info ist eine schreibgeschützte Eigenschaft, die die detaillierten Informationen zurückgibt, die von der kürzlich ausgeführten Abfrage erstellt wurden. Es wird normalerweise verwendet, um Informationen wie die Anzahl der betroffenen Zeilen, Warnungen usw. nach der Aktualisierung , Löschen oder Einfügen ... in der doppelten Taste -Update -Anweisung anzugeben.

 $mysqli = new mysqli('gitbox.net', 'user', 'password', 'database');
$mysqli->query("UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL 30 DAY");
echo $mysqli->info;

Diese Eigenschaft ist erst nach einer bestimmten Abfrageart gültig und gibt nur aussagekräftige Informationen zurück, nachdem die Abfrage erfolgreich ausgeführt wurde.


Häufig gestellte Fragen und Lösungen

1. Return Null oder leere Zeichenfolge beim Zugriff auf MySQLI :: $ Info

Dies ist das häufigste Problem. MySQLI :: $ Info wird erst nach bestimmten bestimmten Abfragen festgelegt, z. B. die Aktualisierungsanweisung . Wenn die Abfrage keine zusätzlichen Informationen erstellt, gibt $ mysqli-> Info NULL oder leere Zeichenfolge zurück.

Lösung:

Überprüfen Sie vor der Verwendung den Abfragetyp, um die Anwendbarkeit zu bestätigen. Es wird auch empfohlen, es in Verbindung mit $ mysqli-> betroffen zu verwenden, um sicherzustellen, dass Sie das richtige Feedback erhalten haben.

 $result = $mysqli->query("UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL 30 DAY");
if ($result) {
    echo "Anzahl der betroffenen Zeilen: " . $mysqli->affected_rows . "\n";
    echo "Weitere Informationen: " . ($mysqli->info ?? 'Keine Informationen') . "\n";
} else {
    echo "Abfrage fehlgeschlagen: " . $mysqli->error;
}

2. Zugriff auf MySQLI :: $ Info Nach dem Ausfall des Abfrages führt zu einem Fehler

Wenn die Abfrage nicht ausgeführt wird, existiert MySQLI :: $ Info noch, aber der Inhalt ist nicht vertrauenswürdig. Wenn Sie die Abfrageergebnisse nicht beurteilen und direkt auf sie zugreifen, erhalten Sie möglicherweise bedeutungslose oder falsche Informationen.

Lösung:

Beurteilen Sie immer, ob die Abfrage zuerst erfolgreich ist, und besuchen Sie dann MySQLI :: $ Info .

 if ($mysqli->query($sql) === false) {
    echo "Fehler: " . $mysqli->error;
} else {
    echo "Information: " . $mysqli->info;
}

3.. Eine falsche Codierung oder Zeichensatz setzt eine Ausnahme von MySQLI :: $ Info Inhalt aus

Wenn das für die Datenbankverbindung festgelegte Zeichen falsch eingestellt ist, kann MySQLI :: $ Info verstümmelte oder unvollständige Informationen zurückgeben.

Lösung:

Stellen Sie sicher, dass der richtige Zeichensatz sofort nach der Verbindung zur Datenbank festgelegt wird, z. B.:

 $mysqli->set_charset('utf8mb4');

Dies stellt sicher, dass die von MySQLI :: $ Info zurückgegebene Zeichenfolge korrekt angezeigt wird.


4. Häufiger Zugriff auf MySQLI :: $ Info kann alte Daten zurückgeben

Mysqli :: $ Info ist das Ergebnis der letzten erfolgreichen Abfrage. Wenn eine andere Abfrage in der Mitte ausgeführt wird, kann der Zugriff auf die Eigenschaft die Ergebnisse der vorherigen Abfrage zurückgeben, was zu Missverständnissen führt.

Lösung:

Stellen Sie sicher, dass vor jedem Zugriff auf MySQLI :: $ Info keine anderen irrelevanten Abfragen eingefügt werden oder erst unmittelbar nach den entsprechenden Fragen zugegriffen werden.


Zusätzliche Ratschläge

  • Verwenden Sie Ausnahmebehandlung : Kombiniert mit MySQLI_Report (Mysqli_Report_error | mysqli_report_strict) kann es früher Abfragefehler aufnehmen und ein Missverständnis von Fehlerinformationen vermeiden.

  • Abfrage Rückgabewert Urteilsvermögen : Nicht nur MySQLI :: $ Info Richter Abfragergebnisse, sondern es ist auch am besten, betroffene und Fehler für ein umfassendes Urteilsvermögen zu kombinieren.

  • Dokumentenreferenz : Erfahren Sie mehr über die Beschreibung der offiziellen Dokumentation von MySQLI :: $ Info und verstehen Sie die Szenarien und Einschränkungen, auf die sie gilt.


Zusammenfassend ist MySQLI :: $ Info eine praktische, aber falsch auswendbare Eigenschaft. Beurteilen Sie die Abfrageergebnisse korrekt und verwenden Sie sie in Kombination mit anderen MySQLI -Attributen, die Fehler während der Verwendung effektiv vermeiden können.


 $mysqli = new mysqli('gitbox.net', 'user', 'password', 'database');
$mysqli->set_charset('utf8mb4');

$sql = "UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL 30 DAY";

if ($mysqli->query($sql) === false) {
    echo "查询Fehler: " . $mysqli->error;
} else {
    echo "Anzahl der betroffenen Zeilen: " . $mysqli->affected_rows . "\n";
    echo "Weitere Informationen: " . ($mysqli->info ?? 'Keine Informationen') . "\n";
}