Kalle_: Problem mit DB-Kommando

Hallöle,

habe hier zwei MySql- Kommandos:

UPDATE bfp_kontakte SET prio_1=0, prio_2=0 WHERE owner=2 AND besucher_id=1303 AND slot_nr=0 AND sperr_kz=0;

INSERT INTO bfp_kontakte (
owner
, besucher_id
, kon_kz
, aussteller_id
, prio_1
) VALUES (
2
,1303
, 1
,862
,1
);
Wenn ich die genauso in phpMyAdmin eingebe, kommt die Meldung: "Ihr SQL-Befehl wurde erfolgreich ausgeführt."

Dieselben beiden Kommandos mit
$q = "....";
$res = mysql_query( $q ); zeigSqlFehler( $act, $q );

bringt den Fehler
"1064: Fehler in der Syntax bei '; INSERT INTO bfp_kontakte ( owner , besucher_id , kon_kz , a' in Zeile 2."

Also der Update gefällt nicht. Ich vermute, er mag das Semikolon nicht. Warum geht es dann aber in phpMyAdmin ?

LG Kalle

  1. ich vergaß zu erwähnen, warum ich mehrere Kommandos übergeben will: Um die Verbindungen von PHP zur DB gering zu halten.

    1. echo $begrüßung;

      ich vergaß zu erwähnen, warum ich mehrere Kommandos übergeben will: Um die Verbindungen von PHP zur DB gering zu halten.

      Man kann durchaus mehrere Befehle (mysql_query) nacheinander über die gleiche Verbindung (mysql_connect) senden.

      echo "$verabschiedung $name";

      1. Hello,

        ich vergaß zu erwähnen, warum ich mehrere Kommandos übergeben will: Um die Verbindungen von PHP zur DB gering zu halten.

        Man kann durchaus mehrere Befehle (mysql_query) nacheinander über die gleiche Verbindung (mysql_connect) senden.

        siehe z.B.  http://forum.de.selfhtml.org/archiv/2005/1/t99694/#m609374

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hello,

          siehe z.B.  http://forum.de.selfhtml.org/archiv/2005/1/t99694/#m609374

          und http://de3.php.net/mysqli-multi-query
          Was ist daraus geworden? Hat das schon mal jemand erfolgreich benutzt?

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
  2. hi,

    Ich vermute, er mag das Semikolon nicht.

    richtig, die schnittstelle php <-> mysql über die mysql-funktionen schließt dies aus.

    warum? elementares sicherheitsdenken.
    eine vielzahl von sql-injcetions basiert darauf, bei nicht ausreichend abgesichtern usereingaben einfach eine zweite query mit ; abgetrennt am die eigentlich vom programmierer beabsichtigte anzuhängen - das könnte dann bspw. ein DELETE FROM tabelle sein.

    Warum geht es dann aber in phpMyAdmin ?

    weil PMA die eingegebene query am seimikolon aufteilt, und dann mehrere separate einzelstatements an die DB absetzt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Warum geht es dann aber in phpMyAdmin ?

      weil PMA die eingegebene query am seimikolon aufteilt, und dann mehrere separate einzelstatements an die DB absetzt.

      ... für die Aufklärung.

      Kalle