Andreas Korthaus: Tomaten vor den Augen bei MySQL :-(

Beitrag lesen

Hi Christian,

$result = mysql_query( "SELECT * FROM $table ORDER BY DATE DESC" );

DATE ist ein Schluesselwort in SQL, das darf nicht als
Tabellen-Name benutzt werden. Ansonsten gibts
aussagekraeftigere Fehlermeldungen mit

$result = mysql_query("query") or die(mysql_error());

Seit wann darf man DATE nicht mehr als Feldname, Indexname oder Tabellenname benutzen in mySQL. Das ist doch nicht MS-Access, wo man NAME, BREITE, und ANZAHL nicht als Feldnamen benutzen darf, wenn man später polymorphe Formulare bauen will. Musst Du mal ausprobieren. Ist immer eine Gaudi wenn in einer Adressdatei der Typ dann plötzlich "Willi Adressverwaltung" heißt...

Ich will das jetzt aber genau wissen, ob MySQL da genauso blöd ist.

Zitat von http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#Reserved_words:

Folgende Symbole (aus der obigen Tabelle) sind von ANSI-SQL verboten, aber von MySQL als Spalten- und Tabellennamen zugelassen. Der Grund ist, dass einige davon sehr natürliche Namen sind und viele Leute diese bereits in Benutzung haben.

* ACTION
    * BIT
    * DATE
    * ENUM
    * NO
    * TEXT
    * TIME
    * TIMESTAMP

Aber der ANSI-SQL92 Standard würde mich auch mal interesieren! Wo findet man den?

Grüße
Andreas