Sequenz von SQL-Befehlen

  • Salut,

    ich bin kurz vor der Verzweiflung :(

    Um mehrere Datensätze in die MySQL-Datenbank einzufügen, erstelle ich einen Query-String:

    Code
    foreach ($files as $curfile)
        {
          $request .= "INSERT INTO cms_images (URL, WIDTH, HEIGHT, LASTMODIFIED) VALUES ('$curfile', 0, 0, 0); "; 
        }


    Wenn ich mir das mittels echo ausgeben lasse, sieht es auch korrekt aus

    SQL
    INSERT INTO cms_images (URL, WIDTH, HEIGHT, LASTMODIFIED) VALUES ('data/img/20070122megarace13thm.jpg', 0, 0, 0); INSERT INTO cms_images (URL, WIDTH, HEIGHT, LASTMODIFIED) VALUES ('data/img/20070122megarace12thm.jpg', 0, 0, 0);


    Und wenn ich diesen Text in phpmyadmin einfüge, werden die Datensätze auch erstellt.

    Nur, wenn ich den erstellten Query-String mittels

    Code
    $result = mysql_query($request, $link);


    ausführen will, erhalte ich die Fehlermeldung

    Code
    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 '; INSERT INTO cms_images (URL, WIDTH, HEIGHT, LASTMODIFIED) VALUES ('data/img/2' at line 1


    Die $link-Verknüpfung zur DB ist gültig, daran liegt es nicht.

    Führt phpmyadmin irgendwelche Korrekturen durch, wenn der SQL-Code von Hand eingegeben wird?

    Was ist da falsch?


    Danke im Voraus,

    Stefan

  • der sql server kann immer nu einen befehl ausführen... der phpMyAdmin nutzt das ; als trenzeichen

    so wird aus:
    $result = mysql_query($request, $link);


    $result=array();
    foreach(explode(';', $request) AS $r)
    $result[] = mysql_query($r, $link);