Ingo: mehrere UPDATEs in einer Abfrage

Hallo, ich habe folgenden Query-String:

UPDATE tipps SET ToreM1=1, ToreM2=2, sieger=2 WHERE id=14;UPDATE tipps SET ToreM1=1, ToreM2=1, sieger=0 WHERE id=15;UPDATE tipps SET ToreM1=2, ToreM2=1, sieger=1 WHERE id=13;

wenn ich mysql_query() damit füttere apuckt er mit nen error(1064)aus.
Es soll also etwas mit der Syntax nicht stimmen.

Füge ich den Query aber in PHPMyAdmin ins SQL-feld ein und schicke ihn ab, klappt alles wunderbar.

Was mache ich falsch?

Vielen Dank schonmal!
Ingo

  1. hi,

    Was mache ich falsch?

    Du kannst mit mysql-Query nur jeweils eine Query an die DB absetzen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Du kannst mit mysql-Query nur jeweils eine Query an die DB absetzen.

      ...und PHPMyAdmin ist so frei ohne es dir mitzuteilen deine Statements automatisch am ";" aufzutrennen und nacheinander abzusetzen.

      MfG
      Rouven

      --
      -------------------
      Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
    2. Was mache ich falsch?

      Du kannst mit mysql-Query nur jeweils eine Query an die DB absetzen.

      Das ist so nicht richtig:

      http://dev.mysql.com/doc/refman/5.1/de/mysql-options.html

      MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP und multi-statements

      Allerdings erst ab 5.0 (oder gar erst ab 5.1?).

      Gruß, Bodo

      1. hi,

        Das ist so nicht richtig:

        http://dev.mysql.com/doc/refman/5.1/de/mysql-options.html

        MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP und multi-statements

        Allerdings erst ab 5.0 (oder gar erst ab 5.1?).

        Wer vergibt denn dafür ein Minus?
        Die Info ist zumindest mal interessant - auch wenn ich nicht sehe, wie man sie im vorliegenden Fall nutzen könnte, denn die API-Funktion mysql_options wird AFAIK von der mysql-Erweiterung von PHP nicht unterstützt.
        Da könnte man dann evtl. zu mysqli greifen ...

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. echo $begrüßung;

          Wer vergibt denn dafür ein Minus?

          Ich war es nicht, aber

          Die Info ist zumindest mal interessant

          die Antwort zielte nur grob in Richtung Ziel ... und verfehlte es.

          Da könnte man dann evtl. zu mysqli greifen ...

          Man muss sogar. Es gibt, soweit ich weiß, in dem Fall keine Alternative dazu.

          echo "$verabschiedung $name";

        2. Das ist so nicht richtig:

          Wer vergibt denn dafür ein Minus?

          Jemand, der (korrekterweise) festgestellt hat, daß meine Antwort dem Fragesteller nicht weiterhilft.

          Gruß, Bodo

      2. echo $begrüßung;

        Du kannst mit mysql-Query nur jeweils eine Query an die DB absetzen.

        Das ist so nicht richtig:

        Es bleibt dabei, dass mit mysql_query() nur ein Statement abgesendet werden kann. Um mehrere Statements absenden zu können, muss man unter PHP mysqli_multi_query() verwenden. Dazu bedarf es aber der mysqli-Extension von PHP, die es ab PHP-Version 5.0 gibt.

        http://dev.mysql.com/doc/refman/5.1/de/mysql-options.html
        MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP und multi-statements

        Die ersten beiden Parameter haben mit Multi-Queries nichts zu tun und multi-statements ist eine Option, die in der MySQL-Server-Konfigurationsdatei (my.cnf) gesetzt werden kann. Multi-Statements werden ur dann ausgeführt, wenn man es beim Connect über die MySQL-API-Funktion mysql_real_connect() mit dem Parameter CLIENT_MULTI_STATEMENTS erlaubt.

        Diesen Parameter klammert aber das PHP-mysqli-Pendant mysqli_real_connect() explizit aus und bietet dafür mysqli_multi_query() an (wofür es in der MySQL-API keine Entsprechung gibt).

        Allerdings erst ab 5.0 (oder gar erst ab 5.1?).

        Gültig ab MySQL Version 4.1 bzw. dessen API.

        echo "$verabschiedung $name";