• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL Syntax Fehler

freakXHTML

Mitglied
Hallo,

ich stehe gerade voll auf dem Schlauch. Ich habe eine SQL Abfrage, doch irgendwo ist ein Fehler, den ich einfach nicht sehe. Ich habe folgende Tabelle, wobei ID der Primärschlüssel ist.

ID Name Ordner Beschreibung

Ordner ist vom Typ varchar(20). Meine SQL Anweisung lautet:

SELECT ID, Name, Beschreibung FROM pictures WHERE Ordner = Party1

Es kommt immer die Fehlermeldung, dass " fetch_object() on a non-object " nicht funktioniert. Warum? Es muss an "Party1" liegen, denn ohne Where ist alles super. Wo liegt der Fehler?

Vielen Dank
lg, freakXHTML

PS.: Liegt das vielleicht an fehlenden Hochkommata? Ich kriegs jedoch auch mit diesen nicht hin. Ich arbeite mit PHP:

PHP:
$sql = "SELECT ID, Name, Beschreibung FROM pictures WHERE Ordner = Party1"; 
   $sql = $this->db->real_escape_string($sql);
   $result = $this->db->query($sql);
 
Zuletzt bearbeitet:
Werbung:
Eine Spalte "Party1" gibt es nicht. Solltest Du einen String innerhalb der Spalte "Ordner" suchen, dann schreib das Statement so:

Code:
$sql = "SELECT ID, Name, Beschreibung FROM pictures WHERE Ordner = [COLOR="red"]'[/COLOR]Party1[COLOR="red"]'[/COLOR]";
 
Hallo,

vielen, vielen Dank für deine Antwort. Ich bin langsam am Verzweifeln. Party1 ist der Inhalt der Spalte "Ordner". Leider funktioniert es immer noch nicht. Ich suche tatsächlich nach einem String (varchar) innerhalb der Spalte "Ordner". Es kommt immer der Fehler:

Fatal error: Call to a member function fetch_object() on a non-object in G:\Programme\xampp\htdocs\php\LoginClass.php on line 1837

Ich lasse das SQL Statement ausgeben. Das sieht dann so aus:

SELECT ID FROM pictures WHERE Ordner = 'Party1'

Was mache ich falsch? Es muss an der Spalte Ordner oder an dessen Inhalt liegen. Die Spalte ist vom Typ varchar(). Was mache ich falsch?

Die Tabelle ist gefüllt. Das heißt, es gibt zahlreiche Einträge, bei denen "Party1" unter "Ordner" steht.

Vielen Dank
lg, freakXHTML
 
Werbung:
ich hab den Fehler. Der Fehler lag an dieser Zeile:

$sql = $this->db->real_escape_string($sql);

Aber warum? Kann ich hier nicht escapen? Wenn ich diese Zeile weglassse, dann funktioniert alles.

Vielen Dank
lg, freakXHTML
 
real_escape_string auf den ganzen Query ausführen ist unnötig. Du musst nur einzelne Benutzerangaben escapen.

Also
$sql = "select * from users where username = '".escape_string($username)."'";
und nicht $sql = escape_string("...");
 
Zurück
Oben