MYSQL Abfrage Fehler

Laserdancer2000

WM-Fieber
7 Juni 2006
1.872
30
Hallo,

ich bastel grad an nem Script, bei dem ich grad den Wald vor lauter Bäumen nicht sehe bzw. den Fehler nicht sehe.

Folgender code:

$result = mysql_query("SELECT klammid FROM $tabellenliste WHERE uhrzeit > '$anfangkw' AND uhrzeit < '$endekw' AND sinn = '1'");

ergibt diesen Fehler:

Abfrage konnte nicht ausgeführt werden: 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 'WHERE uhrzeit > '1246834800' AND uhrzeit < '1247439600' AND sinn = '1'' at line 1

Also heißt da muss ein Syntaxfehler drin sein, könnt ihr mir sagen, was ich falsch mache?
 
OMG! :wall:

Du bist dir sicher, dass die Uhrzeiten Strings sind?
Du bist dir auch im Klaren, dass z.B. '2' größer is als '12564234'?

Zum Syntaxfehler: Die Stelle steht markiert. Immer das erste Zeichen in der Fehlermeldung ist unerwartet, d.h. in diesem Fall WHERE. Daraus schließen wir, dass das Zeichen vorher die Query wohl schon beendet hat oder andere Klauseln begonnen hat, sodass WHERE nicht mehr erlaubt is.
Ein klassisches Beispiel, wie gefährlicher Kot Code Fehler erzeugt.
 
Apropos: immer noch eine meiner Lieblingsfunktionen: implode(",", $tabellenliste) :D
 
Apropos: immer noch eine meiner Lieblingsfunktionen: implode(",", $tabellenliste) :D

In seinem Fall wird MySQL dann entweder meckern, dass irgendeine Spalte in mehreren Tabellen vorkommt oder er bastelt sich nen Cross-JOIN, der nur unnötig Performance kostet.

Tipp: Lass dir das SQL-Statement mal ausgeben, dass letztendlich an MySQL geschickt wird. error_reporting(E_ALL); dürfte auch helfen ;)

Greetz

paddya
 
ja es lag daran, hatte weiter oben $tabellenliste mit dem Namen der Tabelle definiert, nun einfach den Wert in Klartext direkt reingeschrieben, jetzt macht er was ich will.

@theHacker: Nein, hab ich geändert, es sind natürlich keine Strings. Aber sowas fällt jemandem wie mir, der nur alle halbe Jahre mal ein paar Zeilen schreibt für irgend ne Anwensung, leider nicht sofort auf :ugly:

Ich kann auch nicht behaupten, dass ich mysql&PHP gut kann, aber für meine Anwendung reicht es doch aus :biggrin:

Danke für eure Hilfe :)