KlausStein: Funktionierende Query will über php nicht

Hi,

hier meine Query (mitsamt Fehlermeldung)

  
INSERT INTO node ( payload, lft, rgt ) VALUES ( '2009', '1', '2' ); UPDATE node SET root_id = 2009 WHERE node_id = LAST_INSERT_ID(); UPDATE node SET lft = lft + 2 WHERE root_id = 2009 AND lft > 2 AND rgt >= 2; UPDATE node SET rgt = rgt + 2 WHERE root_id = 2009 AND rgt >= 2  

Über phpmyAdmin geht sie problemlos durch. Aus dem Script heraus gibts die Fehlermeldung.

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 'UPDATE node SET root_id = 2009 WHERE node_id = LAST_INSER

Woran liegt das?

Grüße, Klaus

  1. echo $begrüßung;

    [eine Multi-Query]
    Über phpmyAdmin geht sie problemlos durch. Aus dem Script heraus gibts die Fehlermeldung.
    Woran liegt das?

    An MySQL. Pro mysql_query()-Aufruf lässt sich nur ein Statement ausführen. Das ist aus Sicherheitsgründen so festgelegt, damit nicht jemand bei SQL-Injection-Lücken ...;DELETE FROM ... einfügen kann.

    Der PMA trennt die Statements auf und arbeitet sie einzeln ab.

    Es gibt in der mysqli-Extension mit mysqli_multi_query() die Möglichkeit mehrere Statements abzuarbeiten. Dann sollte man aber das Prinzip der kontextgerechten Maskierung verstanden haben und es odnungsgemäß anwenden, sonst baut man sich die Lücke ein, die MySQL mit der Einschränkung zu vermeiden versuchte.

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      An MySQL. Pro mysql_query()-Aufruf lässt sich nur ein Statement ausführen. Das ist aus Sicherheitsgründen so festgelegt, damit nicht jemand bei SQL-Injection-Lücken ...;DELETE FROM ... einfügen kann.

      Ok, nachvollziehbar.

      Danke für Deine Hilfe!

      Klaus