[PHP] PHP-Script bricht ab

anti43

nicht mehr wegzudenken
PHP-Script bricht ab

hallo! leider bricht mein script beim aufruf der funktion:

PHP:
function load_db_dump($file,$sqlserver,$user,$pass,$dest_db)
{
  $sql=mysql_connect($sqlserver,$user,$pass);
  mysql_select_db($dest_db);
  $a=file($file);
  foreach ($a as $n => $l) if (substr($l,0,2)=='--') unset($a[$n]);
  $a=explode(";\n",implode("\n",$a));
  unset($a[count($a)-1]);
  foreach ($a as $q) if ($q)
   if (!mysql_query($q)) {echo "Fehler'$q'"; mysql_close($sql); return 0;}else{echo "allet klar";}
  mysql_close($sql);
  return 1;
}

völlig ohne fehlermeldung ab. error_reporting (e_all) zeigt nichts an, die seite bleibt einfach weiss und in der datenbank steht nichts drin.... auch der nachfolgende code wird nicht mehr ausgeführt.
kann mir das einer erklären ?? :cry:
 
Zuletzt bearbeitet:

Astrominus

Administrator
Teammitglied
Hast Du dir vielleicht eine Endlos-Schleife gebastelt?

Woher kommen die Variablen $n, $q und $l?

So wie es aussieht, sind die innerhalb der Funktion nicht verfügbar, versuche es einmal mit global (global $n,$q,$l; )
 

anti43

nicht mehr wegzudenken
hmm hört sich gut an als erklärung :) , aber in der zeile drüber ist die lösung : $a=file($file); liest den inhalt von $file in ein array $a und mit foreach ($a as $n => $l) loopen wir durch das arry....
 

Astrominus

Administrator
Teammitglied
Uuups, stimmt ja, ein Foreach Konstrukt.;)

Der Fehler könnte auch an der DB-Verbindung liegen, das gibt nicht unbedingt immer eine Fehlermeldung.
Teste mal ob alle dazugehörigen Variablen korrekt in die Funktion übernommen werden.

Setze doch einmal nacheinander an verschiedenen stellen des Scriptes eine die() Anweisung. Z.B. die('test');
Um festzustellen wo das Script genau abbricht.
So begebe ich mich immer auf Fehlersuche.
 

klasch

chronische Wohlfühlitis
Man könnte

die('Direkt mit der korrekten Fehlermeldung einbauen')

wenn man später mal eine Datenbank Verbindung nicht richtig setzt kommt man schneller auf den Fehler. Oder dem User wird ein Fehler angezeigt wenn die DB mal nicht funzt.
 

Pennywise

assimiliert
Ein Debugger ist auch nie schlecht. Oder du setzt zusätzlich zu den dies noch ein paar Ausgaben der Variablen - das ist nie ein Fehler bei der Suche.
 
Oben