[mySQL] Da hat der Herr "mysql" wohl Mist gebaut

anti43

nicht mehr wegzudenken
Da hat der Herr "mysql" wohl Mist gebaut

hallihallo!
ich hab mal wider ein problem mit meiner lieblingsfunktion: :)

PHP:
function load_db_dump($file,$sqlserver,$user,$pass,$dest_db)
{

  $sql=mysql_connect($sqlserver,$user,$pass);
  mysql_select_db($dest_db);

$lines=file($file);
foreach ($lines as $line_num => $line) {
   mysql_query($line);
   if (!mysql_query($line)) {echo "Fehler!  <br>"; echo mysql_error(); return 0;}

}
 
  mysql_close($sql);
return 1;
}

funktioniert nun primstens, leider gibt es, wenn ich

DROP TABLE `adressen`;
CREATE TABLE `adressen` ( blabla

damit ausführe, den fehler
"Unknown table 'adressen'".
aber löschen tut er sie trotzdem! soweit sogut. möglicherweise gibt es die tabelle ja nicht. aber jetzt kommt der knaller: wenn ich

DROP TABLE IF EXISTS `adressen`;
CREATE TABLE `adressen`

schreibe, dann sagt er (natürlich habe ich vorher die tabelle wiederhergestellt):
"Table 'adressen' already exists"

ich verstehs einfach nicht. entweder die blöde tabelle ist da oder eben nicht!?. wenn ich das ganze direkt in phpmyadmin ausführe, gibts keine probleme.. :eek:
 

anti43

nicht mehr wegzudenken
ich hab nun einfach eine 2. funktion geschrieben, die die tabellen erst löscht.. aber das kann ja nicht die lösung sein!
 

threadi

Herzlich willkommen!
Kontrolliere mal genau die einzelnen Hochkommata z.B. bei "DROP TABLE `adressen`;". Vermute gerade, dass du die falsch gesetzt hast. Ansonsten sehe ich da eigentlich keine Probleme. Gib doch zur Sicherheit mal in der foreach-Schleife die Variable $line aus, nur zur Prüfung, dass diese wirklich nur je 1 Statement enthalten.
 

anti43

nicht mehr wegzudenken
ja das komische ist: ich hab jetzt die drop tabele anweisung einfach komplett in eine eigene .sql datei reinkopiert und führe die mit der gleichen funktion aus.. und das funktioniert!
 
Oben