kostenloser Webspace werbefrei: lima-city


Fehler in SQL-Syntax

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    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ß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Versuchs mal so:

    $abfrage=("SELECT * FROM layouts WHERE user LIKE " . $uid . " AND column LIKE 'leftc' ORDER BY yindex ASC");
  4. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Funktionier iwie auch nicht wenn ich den teil rauslasse:
    AND column LIKE 'leftc'
    dann funktionierd der code komischer weise
    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 ;
  5. e********l

    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
  6. Hast du mal versucht deine "LIKE" durch "=" zu ersetzen?

    Oh sry hab evils antwort nicht gelesen. Beitrag is also überflüssig^^

    Beitrag zuletzt geändert: 17.9.2009 16:16:41 von color
  7. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Ok danke für die antworten jetzt funktioniert es ,wieder was dazugelernt :),ich würde sagen:

    CLOSED
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!