[gelöst] komplexe SQL-Abfrage funktioniert in phpMyAdmin, jedoch nicht in PHP

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

  • [gelöst] komplexe SQL-Abfrage funktioniert in phpMyAdmin, jedoch nicht in PHP

    Hallo,
    die ist übrigens mein erster Beitrag.

    phpMyAdmin sagt(Versionsangaben):
    phpMyAdmin - 2.11.9.6
    Server Version: 4.1.22-standard-log
    MySQL-Client-Version: 5.0.60

    Wenn ich in phpmyadmin folgendes Skript eingebe, funktioniert alles

    PHP-Code:
    USE xxx;
    SET @RNUM 0;
    SET @RN 0;
    SET @intvalue 
    (
    Select result.rownr
    FROM
    (SELECT @RNUM:=@RNUM+AS rownrn.nidn.titletn.weight_in_tid
    FROM petra_cmsnode n
    INNER JOIN petra_cmsterm_node tn ON n
    .nid tn.nid
    INNER JOIN petra_cmsterm_data td ON tn
    .tid td.tid
    WHERE n
    .type 'image'
    AND td.tid 14
    AND n.status =1
    GROUP BY tn
    .weight_in_tid ASC n.nid DESCresult
    WHERE result
    .nid 168 );
                           
    CREATE TEMPORARY TABLE tmptable SELECT @RN:=@RN+AS rnrn.nidn.titletn.weight_in_tid
    FROM petra_cmsnode n
    INNER JOIN petra_cmsterm_node tn ON n
    .nid tn.nid
    INNER JOIN petra_cmsterm_data td ON tn
    .tid td.tid
    WHERE n
    .type 'image'
    AND td.tid 14
    AND n.status =1
    GROUP BY tn
    .weight_in_tid ASC n.nid DESC;

    SELECT nid
    FROM tmptable
    WHERE rnr 
    >  @intvalue LIMIT 1
    Gebe ich die Abfrage allerdings in PHP an (mit mysql_query($query)),
    kommt folgende Fehlermeldung:

    Ungültige Abfrage: 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 '; SET @RN = 0; SET @intvalue = (Select result.rownr ' at line 1
    Hat jemand eine Idee?

  • #2
    mysql_query() gibt man immer nur eine Query. Deshalbs knallts beim ersten Semikolon. Verwende mysqli_multi_query().

    Kommentar


    • #3
      Frickelei

      Der verwendete Server verwendet noch keine mysqli-Erweiterung.
      Gibt es eine Möglichkeit die Abfrage so zu recht zu mogeln, das dass SQL-Skript als eine Abfrage/query durgeht und auch "mysql_query()" dies akzeptiert?

      Kommentar


      • #4
        Unmöglich. Im Manual steht "mysql_query()sends a unique query (multiple queries are not supported)".
        Aber du kannst die einzelnen Abfragen auch einzeln an mysql_query() reichen.

        Kommentar


        • #5
          Danke!

          Vielen Dank, auch wenn es nur ne Kleinigkeit war, hat es mir doch sehr geholfen!

          Ich feuere nun die semikolon-separierte(n) Abfrage(n) einzeln ab.

          Gruß
          d

          Kommentar

          Lädt...
          X