SQL-Dateien (*.sql) auslesen und ausführen
Christian
- datenbank
Hi,
ich möchte eine Art Install-Skript schreiben, das mir Datenbank Tabellen (mysql) erstellt. Dazu möchte ich die SQL-Befehle extern auslagern, also in *.sql-Dateien. Ein PHP Skript soll diese dann auslesen und die SQL-Befehle ausführen.
Die Befehle werden mit ; getrennt. Idee war:
$file = file("*.sql", "r"); // Datei einlesen.
$file = implode("", $file); // Zeilen in einen langen String packen
$sql = explode(";", $file); // nach ; splitten
for($i = 0; $i < count($sql); $i++)
{
mysql_query($sql[$i]);
}
Sollte eigentlich klappen. nur was mach ich, wenn irgendwo ein Textfeld oder so das ; enthält??? Ich müsste dann sicher mit Regulären Ausdrücken arbeiten.
Außerdem erscheint mir das etwas umständlich bzw. unschön. gibts da nicht eine bessere möglichkeit???
Gruß
Christian
Korrekt die aktuelle Variante von mysql_query kann imemr nur eine Anweisunge ausführen. Mit der neuen mysqli-Extensionen und MySQL 4.1 wird sich das ändern.
Du müßtest also derzeit tatsächlich eine Art SQL-Parser bauen. phpMyAdmin enthält so etwas - dort kannst du ja mal ein wenig im Quellcode schmökern.
Regards
Thomas