Im Bereich der Webentwicklung besteht die Notwendigkeit, große Datenbankdateien zu importieren und dabei häufig Shared-Hosting-Anbieter zu verwenden entsteht. Leider kann der Zugriff auf MySQL über die Befehlszeile eingeschränkt sein, sodass eine PHP-basierte Lösung zum Parsen und Ausführen von Abfragen erforderlich ist.
Um dieser Herausforderung zu begegnen, wurde eine robuste Funktion namens SplitSQL() entwickelt, um a zuverlässig aufzuteilen Datenbankdatei in einzelne Abfragen aufteilen, ohne übermäßig viel Speicher zu verbrauchen.
SplitSQL() nutzt einen Dateileseansatz und durchläuft die Datei Zeile für Zeile. Es identifiziert Abfragen, indem es das angegebene Trennzeichen (standardmäßig;) am Ende einer Zeile erkennt. Sobald eine vollständige Abfrage zusammengestellt ist, wird sie sofort mit mysql_query() ausgeführt.
<code class="php">function SplitSQL($file, $delimiter = ';') { set_time_limit(0); if (is_file($file) === true) { $file = fopen($file, 'r'); if (is_resource($file) === true) { $query = array(); while (feof($file) === false) { $query[] = fgets($file); if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1) { $query = trim(implode('', $query)); if (mysql_query($query) === false) { echo '<h3>ERROR: ' . $query . '</h3>' . "\n"; } else { echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n"; } while (ob_get_level() > 0) { ob_end_flush(); } flush(); } if (is_string($query) === true) { $query = array(); } } return fclose($file); } } return false; } // Test data $file = '/path/to/db_dump.sql'; SplitSQL($file);</code>
Das obige ist der detaillierte Inhalt vonWie importiert man große MySQL-Dateien effizient in Shared Hosting mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!