Mysqli :: Refresh ist eine Methode der MySQLI -Klasse, und ihre Definition lautet wie folgt:
public mysqli::refresh (int $options): bool
Es empfängt einen Integer -Parameter $ Optionen , eine Kombination aus einer oder mehreren Konstanten, die zur Kontrolle des Aktualisierungsverhaltens verwendet werden. Zum Beispiel:
MySQLI_REFRESH_GRANT
MySQLI_REFRESH_LOG
MySQLI_REFRESH_TABLE
Mysqli_refresh_hosts
MySQLI_REFRESH_STATUS
MySQLi_Refresh_Threads
Diese Konstanten können beispielsweise in Kombination nach bitweise oder ( | ) verwendet werden:
MYSQLI_REFRESH_TABLES | MYSQLI_REFRESH_STATUS
MySQLI_REFRESH_TABLE ist eine Konstante, mit der das Aktualisieren des Datentabellen -Cache angezeigt wird. Wenn Sie während des so ausgeführten Codes Änderungen an der Tabellenstruktur vornehmen (z. B. Hinzufügen von Feldern, Änderungen von Indizes usw.) und hoffen, dass die aktuelle Verbindung diese Änderungen sofort erkennen kann, können Sie MySQLI :: Refresh (mysqli_refresh_tables) aufrufen.
Dies ist sehr nützlich für Programme, die lange Zeit ausgeführt werden oder die Tabellenstrukturen durch Skripte regelmäßig verwalten.
Hier ist ein vollständiges Beispiel, das zeigt, wie die Methode MySQLI :: Refresh mit der Konstante MySQLI_REFRESH_TABLE verwendet wird:
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// Überprüfen Sie die Verbindung
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Aktualisieren Sie den Datentabellen -Cache
if ($mysqli->refresh(MYSQLI_REFRESH_TABLES)) {
echo "Datentabelle erfolgreich aktualisieren。\n";
} else {
echo "Aktualisierung der Datentabelle fehlgeschlagen。\n";
}
$mysqli->close();
In diesem Beispiel stellen wir eine Verbindung zum lokalen Datenbankserver her, rufen dann die Aktualisierungsmethode auf und übergeben in mySQLI_REFRESH_TABLE und geben die Eingabeaufforderung nach dem Erfolg aus.
Sie können auch mehrere Aktualisierungsoptionen kombinieren:
$mysqli->refresh(MYSQLI_REFRESH_TABLES | MYSQLI_REFRESH_STATUS);
In einigen automatisierten Bereitstellungsprozessen können Skripte sofort nach der Aktualisierung der Datenbankstruktur Abfragen ausführen. Um Fehler zu vermeiden, die durch zwischengespeicherte Metadaten verursacht werden, kann das Aufrufen der Aktualisierungsmethode sicherstellen, dass die neueste Struktur verwendet wird.
In einigen SaaS -Plattformen können Benutzer beispielsweise dynamisch Felder hinzufügen oder Tabellenstrukturen erweitern. In diesem System kann MySQLI :: Refresh (mysqli_refresh_tables) verwendet werden, um sicherzustellen, dass der Anwendungsschichtcode strukturelle Änderungen rechtzeitig erkennt.
Obwohl wir in diesem Artikel hauptsächlich MySQLi_Refresh_Tables diskutieren, können Sie, wenn Sie ein Skript verwenden, um Berechtigungen zu ändern (z. B. autorisierte Benutzer), Sie verwenden, um die Berechtigungstabelle zu aktualisieren:
$mysqli->refresh(MYSQLI_REFRESH_GRANT);
Die Aktualisierungsmethode ändert weder die tatsächlichen Daten noch die Struktur in der Datenbank, sondern zwingt nur den MySQLI -Client, den internen Cache neu zu laden.
Nicht alle MySQL -Serverkonfigurationen unterstützen alle Arten von Aktualisierungsvorgängen, abhängig von der Serverversion und den Einstellungen.
Wenn Sie beim Aufrufen der Aktualisierungsmethode eine ungültige konstante Kombination übergeben, meldet dies möglicherweise keinen Fehler, spielt jedoch keine Rolle.