dedlfix: Problem mit PHP und MySQL

Beitrag lesen

echo $begrüßung;

Vinzenz hat ja schon geantwortet. Ich kommentiere auch noch ein bisschen.

Nun bin ich dabei die Restore-Funktion zu schreiben und zwar prüfe ich zu erst ob die Datenbank existiert, wenn ja dann lösche ich sie, wenn nein dann mache ich weiter.

Es gibt auch für DROP DATABASE den Zusatz IF EXISTS, sowie IF NOT EXISTS für CREATE DATABASE.

Lese die exportierte Datei ein, schreibe sie in ne Variable und führe mysql_query() mit dieser Variable aus. Leider funktioniert das nicht! er macht einfach gar nichts.

Wer ist "er"? Hat "er" einen Rückgabewert, der einen Fehler signalisiert? Hat "er" eine Funktioon, mit der der Wortlaut des Fehlers abfragbar ist?

Ach bei der Ausführung meldet phpMyAdmin noch diesen fehler:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';# MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).

INS' at line 11

aber ich glaube, dass der nicht viel zu sagen hat. jedenfalls habe ich das so aus anderen foren gelesen.

Der Text zwischen ; und INS ist Ausgabe von phpMyAdmin, die entsteht, wenn man mehrere Statements ausführt und "SQL-Befehl hier wieder anzeigen" markiert hat, und dann diese Ausgabe weiterverwendet. Mal abgesehen, dass das   ein Fehler in der deutschen Sprachdatei ist, mann man diese Kommentare vor dem Weiterverwenden löschen. Ansonsten ist das die typische Meldung (der bemängelte Teil fängt mit ; an), wenn man versucht, mehrere Statements mit einem mysql_query()-Aufruf abzusetzen.

Vielleicht ist es auch eine Lösung, wenn ich die Datei einlese und aufspalte in die einzelnen Querys und diese dann getrennt von einander ausführe. Leider habe ich aber keine Ahnung wie ich das machen soll ;-)

Die einfachste Lösung wäre ein Explodieren am ;. Allerdings birgt das die Gefahr, SQL-Statements auseinanderzureißen, wenn darin das ; als Datenbestandteil vorkommt. Parsen und Strings erkennen wäre die bessere Lösung.

Warum machst du dir den Aufwand einer Restore-Prozedur, wenn es doch für diese eher seltenen Fälle bereits geeignete Tools (z.B. phpMyAdmin) gibt? Reicht es nicht, wenn du den Resore-Vorgang mit phpMyAdmin dokumentierst?

echo "$verabschiedung $name";