fr@gma: Daten in Datenbank einlesen

Ich habe hier ein Problem und komme echt nicht weiter.
Und zwar habe ich eine Sicherungsdatei (.txt) in der alle Datensätze mit dem Trennseperator "§" getrennt sind und die verschiedenen Datenblöcke stehen zeilenweise untereinander.

also etwa:
name§nachname§ort
name1§nachname1§ort1

Nun möchte ich die Daten mittel folgenden Quellcode wieder in die Datenbank lesen, geht aber nicht ...

$datenbank="test";
$tabelle="test";
$db=@mysql_connect() or die ("keine Verbidung zur Datenbank");
@mysql_select_db($datenbank, $db) or die ("keine Verbindung zur Datenbank");
$daten = file($userfile);

for($b=0; $b<count($daten); $b++)
  {
  $dat= explode("§",$daten[$b]);
  $sql="INSERT INTO ".$tabelle."(anrede, vorname, name, ort) VALUES (";

for($c=0; $c<count($dat)-1; $c++)
   {
   $sql.="'".$dat[$c]."', ";
   }

$sql.="'".$dat[$c]."');";
  $res= mysql_query($sql, $db);
  echo $sql . "<br><br>";
  }

mysql_close($db);
  if($res)
  {
  echo "Schreiben abgeschlossen";
  }

else
  {
  echo "Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten: <br>\nFehler-Nummer:
  <b>".mysql_errno($db)."</b><br>\Fehler-Ausgabe:
  <br>".mysql_error($db)."</b>";
  }
}

kann mir vielleicht mal jemand sagen wo der Fehler liegt?
Fehlermeldung:
Warning: 1 is not a valid MySQL-Link resource in test.php on line 78

Warning: 1 is not a valid MySQL-Link resource in test.php on line 79
Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten:

  1. Hallo fr@gma!

    Nun möchte ich die Daten mittel folgenden Quellcode wieder in die Datenbank lesen, geht aber nicht ...
    [viel Müll]

    kann mir vielleicht mal jemand sagen wo der Fehler liegt?
    Fehlermeldung:
    Warning: 1 is not a valid MySQL-Link resource in test.php on line 78

    Warning: 1 is not a valid MySQL-Link resource in test.php on line 79
    Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten:

    Und wo bitte ist in Deinem Code Zeile 78 bzw. Zeile 79?

    Vermutlich in etwa hier:

    $db=@mysql_connect() or die ("keine Verbidung zur Datenbank");

    Du solltest Dir mal anschauen, was mysql_connect() für Parameter erwartet.

    MfG
    Götz

    --
    Losung für Montag, 24. Januar 2005
    Die Hoffart der Menschen wird gebeugt und der Stolz der Männer gedemütigt, und erhaben ist der Herr allein an jenem Tage. (Jesaja 2,11)
    Jesus spricht: Wer sich selbst erhöht, der wird erniedrigt werden; und wer sich selbst erniedrigt, der wird erhöht werden. (Lukas 18,14)
    (Losungslink)
    1. Hallo Götz,

      vielen Dank für Deine Antwort. an "mysql_connect()" liegt es nicht.
      Das Problem sind die Werteangaben bei dem "INSERT-Befehl". Lasse ich da die Werteangaben da weg, funktioniert alles.
      Irgendwo da liegt das Problem, ich weiß aber trotzdem nicht woran genau!

      1. Hallo fr@gma!

        Das Problem sind die Werteangaben bei dem "INSERT-Befehl". Lasse ich da die Werteangaben da weg, funktioniert alles.

        Laß Dir den fertigen Befehl mal ausgeben, und schau ihn Dir genau an.
        Vielleicht läuft da beim Zusammenbauen ja was schief.
        Setz am Anfang des Scripts am besten mal error_reporting(E_ALL).

        MfG
        Götz

        --
        Losung für Montag, 24. Januar 2005
        Die Hoffart der Menschen wird gebeugt und der Stolz der Männer gedemütigt, und erhaben ist der Herr allein an jenem Tage. (Jesaja 2,11)
        Jesus spricht: Wer sich selbst erhöht, der wird erniedrigt werden; und wer sich selbst erniedrigt, der wird erhöht werden. (Lukas 18,14)
        (Losungslink)
        1. Hallo Götz

          die Ausgabe von $sql sieht übrigens so aus:

          INSERT INTO kundendaten(anrede, vorname, name, ort) VALUES ('Herr', 'Tester', 'Mustermann', 'Musterstadt');

          ... hier ist für mich kein Fehler ersichtlich - trotzdem funktioniert es nicht.

          1. Hallo Götz,

            ich habe´den Fehler gefunden. Die TXT-Datei ist eine CSV-Sicherungsdatei. In dieser ist der AUTOKEY mit angegeben, dieser wurde dadurch in den "for-Schleifen" als Argument mit übergeben und deshalb war ein Argument zu viel.

            Man, an diesem Zeug habe ich heute den ganzen Tag vertrödelt.
            Jetzt funzt es aber, danke nochmal.

          2. Hallo fr@gma!

            INSERT INTO kundendaten(anrede, vorname, name, ort) VALUES ('Herr', 'Tester', 'Mustermann', 'Musterstadt');
            ... hier ist für mich kein Fehler ersichtlich - trotzdem funktioniert es nicht.

            Das einzige was da vielleicht ein Problem sein könnte ist, daß hinter "kundendaten" kein Leerzeichen steht. Aber ich nehme eigentlich nicht an, daß das ein Problem ist oder sind Klammern in Tabellennamen erlaubt?

            Laß Dir am besten mal an möglichst vielen sinnvollen Stellen Fehler und Variablen zur Kontrolle ausgeben.

            MfG
            Götz

            --
            Losung für Montag, 24. Januar 2005
            Die Hoffart der Menschen wird gebeugt und der Stolz der Männer gedemütigt, und erhaben ist der Herr allein an jenem Tage. (Jesaja 2,11)
            Jesus spricht: Wer sich selbst erhöht, der wird erniedrigt werden; und wer sich selbst erniedrigt, der wird erhöht werden. (Lukas 18,14)
            (Losungslink)