Tim: Error 1064: You have an error in your SQL syntax;

Hi,

ich kriege bei folgender query immer die im Titel genannte Fehlermeldung:

  
$columnQuery = "SELECT * FROM news WHERE index = $index";  

Wenn ich das "WHERE index = $index" entferne, dann funktioniert das ganze wieder. Das merkwürdige ist, dass ich bei einem anderen Projekt mit einer sehr ähnlichen Query keine probleme hatte.

Die Query wird an

mysql_fetch_array() übergeben.

Wer kann mir helfen?

Danke,
Tim

  1. Hi,

    $columnQuery = "SELECT * FROM news WHERE index = $index";

    Wenn ich das "WHERE index = $index" entferne, dann funktioniert das ganze wieder.

    Und index ist von was für einem Spaltentyp, und $index enthält was für einen Wert?

    Die Query wird an
    mysql_fetch_array() übergeben.

    Nein, dann würdest du eine ganz andere Fehlermeldung bekommen (und zwar eine von PHP, nicht von der Datenbank), wenn du wirklich unsinniger Weise die *Query* an mysql_fetch_array übergeben würdest.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Sorry, hab da was ein wenig vertauscht.

      Und index ist von was für einem Spaltentyp, und $index enthält was für einen Wert?

      $index enthält einen int Wert, bei meinem Beispiel 2.

      .. wenn du wirklich unsinniger Weise die *Query* an mysql_fetch_array übergeben würdest.

      hier nochmals der code:

        
      $columnQuery = "SELECT * FROM news WHERE index = $index";  
        
      if(!($result = mysql_query($columnQuery, $connection)))  
      	showerror();  
        
      
      

      Fehlermeldung:

      Error 1064 : 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 'index = 2' at line 1

      Gruss
      Tim

      1. Hi,

        Error 1064 : 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 'index = 2' at line 1

        Ach so ja, jetzt klingelt's - index dürfte ein reserviertes Wort sein.
        Spalte umbenennen, oder bei jeder Verwendung in Backticks setzen.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Ach so ja, jetzt klingelt's - index dürfte ein reserviertes Wort sein.
          Spalte umbenennen, oder bei jeder Verwendung in Backticks setzen.

          MfG ChrisB

          Hallo ChrisB,

          besten Dank, das wars. Jetzt wo du es erwähnst, kann ich mich noch dran erinnern, dass es doch so Reservierte Variablen gibt.
          Bist mir eine riesen Hilfe.
          Danke vielmals.

          Gruss

          1. Hi!

            Jetzt wo du es erwähnst, kann ich mich noch dran erinnern, dass es doch so Reservierte Variablen gibt.

            Bitte achte auf die Begrifflichkeiten. Das erhöht die Verständlichkeit bei der Kommunikation mit anderen. Reservierte Bezeichner wäre ein passender Begriff.

            Noch eine andere Frage:

            $columnQuery = "SELECT * FROM news WHERE index = $index";

            (Wie) stellst du sicher, dass $index nur nummerische Werte enthält?

            Lo!