Ist das Script zu schnell oder was ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ist das Script zu schnell oder was ?

    Code:
    <?php
    $dbserver='localhost';
    $dbuser='root';
    $dbpass='';
    $dbname='jbb_test_6';
    $filename = "insert.txt";
    $filearray = file($filename);
    $l = sizeof($filearray);
    echo $l;
    $i=0;
    $db = mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname,$db);
    while ($i<=$l)
       {
         $laenge = strlen($filearray[$i])-1;
         $query = substr($filearray[$i],0,$laenge);
         echo $query;
         $res = mysql_query($query,$db);
         while (!$res)
          {
            $res = mysql_query($query,$db);
          }
         echo $filearray[$i]."<br>";
         $i++;
       }
    ?>
    Dieser Code soll aus einem Textfile querys einlesen und diese dann in die DB eintragen, leider funzt das nicht.

    Er trägt nur ein paar Sachen ein und dann ist Ende, das script läuft sich tot, naja seltsamerweise kommt nichtmal der 30 sec. abbruch Ich raff es nicht
    hier ein Auszug aus der Textdatei :

    Code:
    INSERT INTO foren (fid, forenname, moderator, privat, level, untertitel, kategorie) VALUES ( '2', 'offene Tests', 'JoelH', 'o', '1', 'öffentliche tests halt', '2');
    INSERT INTO foren (fid, forenname, moderator, privat, level, untertitel, kategorie) VALUES ( '3', 'polls', 'JoelH', 'o', '1', 'hier kommen die Umfragen rein', '3');
    INSERT INTO foren (fid, forenname, moderator, privat, level, untertitel, kategorie) VALUES ( '4', 'test in 5', 'JoelH', 'o', '1', 'lalalalallalala', '4');
    INSERT INTO kategorie (kategorie, katname) VALUES ( '1', 'Privat');
    INSERT INTO kategorie (kategorie, katname) VALUES ( '2', 'Offen');
    INSERT INTO kategorie (kategorie, katname) VALUES ( '3', 'Allgemein');
    INSERT INTO kategorie (kategorie, katname) VALUES ( '4', 'Test der 5');INSERT INTO online (name, login, ip) VALUES ( 'JoelH', '999500533', '192.168.140.14'); INSERT INTO polls (tid, frage, ant1, ant2, ant3, ant4, ant5, zaehler1, zaehler2, zaehler3, zaehler4, zaehler5, antwortzahl) VALUES ( '1', 'gehts ?', 'jupp', 'nope', '', '', '', '2', '0', '0', '0', '0', '2');
    INSERT INTO polls (tid, frage, ant1, ant2, ant3, ant4, ant5, zaehler1, zaehler2, zaehler3, zaehler4, zaehler5, antwortzahl) VALUES ( '2', 'testpoll', 'jupp', 'nope', '', '', '', '28', '45', '0', '0', '0', '2');
    INSERT INTO polls (tid, frage, ant1, ant2, ant3, ant4, ant5, zaehler1, zaehler2, zaehler3, zaehler4, zaehler5, antwortzahl) VALUES ( '3', 'Testpoll5', 'jupp', 'nope', 'vieleicht', 'weiss nicht', 'ist mir egal', '4', '10', '3', '12', '1', '5');
    INSERT INTO polls (tid, frage, ant1, ant2, ant3, ant4, ant5, zaehler1, zaehler2, zaehler3, zaehler4, zaehler5, antwortzahl) VALUES ( '31', 'sdfsdsdf', 'sdfsdf', 'dfssdf', '', '', '', '2', '0', '0', '0', '0', '2');
    INSERT INTO privatemessages (mid, von, an, textfeld, gelesen) VALUES ( '1', '2', '1', '8:44:17\n2001-8-21\n Betreff : testmail\n-----------------\ntestetstst', '0');
    INSERT INTO privatemessages (mid, von, an, textfeld, gelesen) VALUES ( '2', '2', '3', '8:35:13\n2001-8-22\n Betreff : testmessage\n-----------------\ntestetetsts', '0');
    INSERT INTO topicbeitraege (fid, tid, eid, beitrag, erstellerid, datum, uhrzeit) VALUES ( '3', '1', '1', 'Der erste Test unter Linux\n\n\n[poll]2%%1%%gehts ?%%jupp%%nope%%[/poll]', '2', '2001-08-20', '09:04:55');
    INSERT INTO topicbeitraege (fid, tid, eid, beitrag, erstellerid, datum, uhrzeit) VALUES ( '1', '2', '2', 'testetst\n\n[poll]2%%2%%testpoll%%jupp%%nope%%[/poll]', '2', '2001-08-20', '10:26:49');
    usw.

    Komischerweise werden imer die ersten 3 eingelesen und geschrieben, der vierte nicht und dann 5 - 7, das war es

    Könnte es sein weil ich auto_inc verwende in den Tabellen und er deshalb schwierigkeiten hat ?

  • #2
    Hallo,

    ich habe getestet, naturlich ohne DB. Ich habe sowieso
    nur SQL7, Oracle8.1 (nur mit ODBC usw. ansprechbar),
    aber Script und insert.txt habe kopiert und mit
    while ($i<=$l) kriege ich immer

    Warning: Undefined offset: in d:\Inetpub\wwwroot\phptest\test2.php on line ($laenge = strlen($filearray[$i])-1) (-1=undef.offset)

    Warning: Undefined offset: in d:\Inetpub\wwwroot\phptest\test2.php on line ($query = substr($filearray[$i],0,$laenge))

    kannst du mal mit

    $filename = "insert.txt";
    $filearray = file($filename);
    $la = count($filearray)-1;
    echo $la,"<br>";
    for($i=0;$i<count($filearray);$i++)
    {
    $laenge = strlen($filearray[$i]);
    echo $laenge,"<br>";
    $query = substr($filearray[$i],0,$laenge);
    echo $query,"<br>";
    if($query!="" and $query!=" ")// oder so was
    {
    $res = mysql_query($query,$db);
    }
    }

    versuchen. Ich glaube das liegt an Array. (Fehler meine ich)

    Gruß

    [Editiert von ediel am 06-09-2001 um 11:55]

    Kommentar


    • #3
      Am auto_increment kann's nicht direkt liegen.
      Aber es läßt sich nur auf PrimaryKeys legen,
      die wiederum UNIQUE (also einzigartig) sein müssen.
      Hast du schon einen Eintrag mít "kategorie" 1 und ist das der PrimaryKey der Tabelle, dann kannst du logischerweise keinen zweiten Eintrag mit der kategorie einfügen.

      Extreme Vorsicht ist übrigens mit auto_increment und dem Wert 0 geboten.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar

      Lädt...
      X