PHP: .sql-Dateien benutzen

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

PHP: .sql-Dateien benutzen

Beitrag von naums » Do Aug 11, 2011 12:58 pm

Hallihallöchen,

Ich schreibe grade nen "Installer" für ein Homepage-Projekt, allerdings stolpere ich grade über die .sql-Datei, die mir der PHPMyAdmin exportiert. Wie kann ich die in meinen PHP Skripts verwenden. Ich will die Datei einlesen und auf eine Datenbank anwenden.

Mein jetziger Ansatz (der allerdings mit ner $db->error Fehlermeldung beendet):

Code: Alles auswählen

            $sql=fopen(__DIR__."/install/hpag_database.sql","r");
            $query=fread($sql,filesize(__DIR__."/install/hpag_database.sql"));
            $db->query($query);
Wie also kann ich .sql-Dateien benützen?

MfG naums
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: PHP: .sql-Dateien benutzen

Beitrag von Xin » Do Aug 11, 2011 1:38 pm

Query frisst per Default soweit ich weiß nur einen Befehl.
Ich glaube, damit es mehrere Befehle frisst, muss man es umkonfigurieren oder einen anderen Query-Befehl nutzen.

Die zeilenweisen Kommentare sind ja kein "Query" und ich glaube, dass man Query() erst darauf konfigurieren muss, sich zeilenweise durch den übergebenden Befehl zu hangeln.

Dies ist eine Vermutung, so ein Klingeln im Hinterkopf, kein fundiertes Wissen.^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: .sql-Dateien benutzen

Beitrag von naums » Do Aug 11, 2011 4:17 pm

wie wäre der andere Query-Befehl? ^^
.globl truth
truth:
mov r0, #42
mov pc, lr

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: PHP: .sql-Dateien benutzen

Beitrag von nouseforname » Do Aug 11, 2011 4:36 pm

Ich zitiere mal einfach einen link:

http://www.huschi.net/12_138_de-mysql-d ... xport.html

Er macht das über shell_exec.

oder ähnlich

Code: Alles auswählen

system("mysql -l username datenbank < bla.sql"); 

Alternativ dazu wäre in dem dump eigene Trennzeichen zu verwenden und diese dann mir "explode" wieder zu benutzen.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: .sql-Dateien benutzen

Beitrag von naums » Do Aug 11, 2011 4:41 pm

Bei dem ersten sehe ich schon das problem, dass mysql als Befehl auf dem System vorhanden sein muss. Windows wäre damit raus. Und eigentlich will ich dass mein Skript platformübergreifend läuft.

Deine zweite Möglichkeit... muss ich erstmal ausprobieren....

MfG Naums
.globl truth
truth:
mov r0, #42
mov pc, lr

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: PHP: .sql-Dateien benutzen

Beitrag von nouseforname » Do Aug 11, 2011 4:58 pm

naums hat geschrieben:Bei dem ersten sehe ich schon das problem, dass mysql als Befehl auf dem System vorhanden sein muss. Windows wäre damit raus. Und eigentlich will ich dass mein Skript platformübergreifend läuft.

Deine zweite Möglichkeit... muss ich erstmal ausprobieren....

MfG Naums
Mysql muss doch sowieso auf dem entsprechenden System vorhanden sein.
Dann muss man eben in einer config den Pfad angeben.

Aber mal anders gefragt. Warum machst Du keine eigene Query zum erstellen dessen was du machen willst? So ist das zumindest üblich. Somit kannst Du ja zumindest "default" Werte direkt eintragen. Was ja meistens Ausreichend ist.
Also in der "install.php" Die DB mit default-Werten füllen.

Kannst auch mal schauen wie die das machen:
http://www.mysqldumper.de/

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: .sql-Dateien benutzen

Beitrag von naums » Do Aug 11, 2011 5:01 pm

So mach ich das ja. Aber ich werde die Seite BETA_Testen, auf nem webserver, und weil ich wenn ich Änderungen zuhause gemacht habe, die $DB gerne weiternutzen möchte, so weit wie das möglich ist, brauch ich einfach nur eine SQL-Datei zu kopieren und Install neu auszuführen und fertig isses.

Deine Methode klappt, danke :)

MfG naums
.globl truth
truth:
mov r0, #42
mov pc, lr

Antworten