mikey: sql-Abfrage syntax fehler?

Hi zusammen,

kann mal jemand bitte die Syntax meiner Abfrage in php checken?
bekomme da kein ergebnis raus...

$query = '  SELECT *  
FROM `tabelle`  
WHERE year =1975  
AND alter  
REGEXP "^.{'.$competitionArr['regex'].'}$"  
AND alter \''.$competitionArr['time'].'\'%  
ORDER BY eit  
LIMIT 0 , 300' 
~~~;  
  
danke, mikey
  1. Hallo,

    kann mal jemand bitte die Syntax meiner Abfrage in php checken?

    SELECT  
        *         -- SELECT * sollte man vermeiden,  
                  -- es ist sinnvoller, die gewünschten Spalten einzeln aufzuführen.  
                  -- Ja, auch wenn es alle sind.  
    FROM `tabelle`  
      -- die unsäglichen Backticks sagen mir, dass es sich um MySQL handelt  
    
    > WHERE year =1975  
    > AND alter  
    
    

    alter ist in so ziemlich allen SQL-Dialekten ein reserviertes Wort, auch in MySQL. Du musst es so quoten, wie es im Handbuch steht.

    Freundliche Grüße

    Vinzenz

    1. danke.
      der fehler war aber im noch kleineren Detail...:
      ich hatte

      alter \''.$competitionArr['time'].'\'%

      das Prozentzeichen mußte natürlich vor das Hochzeichen...

      gruß mikey

      1. Hallo,

        danke.

        der fehler war aber im noch kleineren Detail...:
        alter \''.$competitionArr['time'].'\'%

        das Prozentzeichen mußte natürlich vor das Hochzeichen...

        dieser weitere Fehler ist natürlich nicht zu erkennen, wenn Du PHP-Code statt dem generierten SQL-Statement zeigst.

        Merke:
        Wenn es sich um ein PHP-Problem handelt, ist PHP-Code sinnvoll.
        Wenn es sich um ein SQL-Problem handelt, ist SQL-Code sinnvoll und nicht etwa PHP-Code, der SQL-Code erzeugt.
        Wenn es sich um ein Javascript-Problem handelt, ist Javascript-Code sinnvoll und nicht etwa PHP-Code, der Javascript oder die Aufrufstelle im HTML erzeugt.

        Die Liste lässt sich problemlos fortsetzen :-)

        Freundliche Grüße

        Vinzenz