Fehler in SQL-Syntax
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
antwort
code
dank
ergebnis
ersetzen
folgende fehler
header
layout
meldung
not
null
ordern
sagen
set
statement
syntax
tabelle
versuch
wort
-
Hallo ich brauch mal wieder eure hilfe. Ich habe folgeden PHP code:
$abfrage=("SELECT * FROM layouts WHERE user LIKE '$uid' AND column LIKE 'leftc' ORDER BY yindex ASC");
und wenn dieser code ausgeführ wird bekomme ich folgende Fehler meldung:
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 user LIKE '1' AND column LIKE 'leftc'' at line 1
Hier Bisschen mehr vom code:
dbconnect $abfrage=("SELECT * FROM layouts WHERE user LIKE '$uid' AND column LIKE 'leftc' ORDER BY yindex ASC"); $ergebnis = mysql_query($abfrage)or die(mysql_error()); while($row = mysql_fetch_object($ergebnis)) { }
Ich hoffe ihr könnt mir helfen iwie komme ich mir blind vor weil ich den Fehler nicht selber find ^^
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Versuchs mal so:
$abfrage=("SELECT * FROM layouts WHERE user LIKE " . $uid . " AND column LIKE 'leftc' ORDER BY yindex ASC");
-
Funktionier iwie auch nicht wenn ich den teil rauslasse:
dann funktionierd der code komischer weiseAND column LIKE 'leftc'
meine Tabelle seiht so au:
CREATE TABLE IF NOT EXISTS `layouts` ( `id` int(9) NOT NULL AUTO_INCREMENT, `user` int(9) NOT NULL, `column` enum('leftc','midc','rightc') CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL, `yindex` int(9) NOT NULL, `header` enum('name1','name2','name3') NOT NULL, `content` varchar(120) CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
-
Ja, das es dann funktioniert ist auch kein Wunder...
column ist ein Schlüsselwort von SQL und muss entsprechend escaped werden.
Wenn du `colomn` anstelle von column schreibst sollte es funktionieren.
//edit: Wie du auch im Create Statement sehen kannst ist dort jeder Spaltenname escaped. Ansonsten könnte man SQL Schlüsselwörter überhaupt nicht als Spaltennamen verwenden, was man aber generell vermeiden sollte. Dazu zählt auch das Wort user.
Beitrag zuletzt geändert: 17.9.2009 16:15:32 von evil-devil -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage