Typische Fehlerquellen im SQL - bitte VOR dem Posten lesen!
Da ich in diesem Forum immer wieder ein paar typische Fehler beobachtet habe, hier mal einige Fehlerquellen, die bitte in Zukunft vor einem neuen Posting zu beachten und außzuschließen sind:
1. Bitte Werte/Variablen mit Hochkommata umschließen, so lange der spalten-typ kein int ist, also "SELECT feld FROM tabelle WHERE id = $id AND name = 'Kurt'" //$id ist dem fall z.b. 52342365 Ist ein Wert ein Array-Element, kommen innerhalb der Hochkommata (hochkommata nur wenn spalten-typ nicht int) um das Elemtent geschwungene Klammern: "SELECT feld FROM tabelle WHERE id = {$userdata[ 'id' ]}" Wird eine Variable/Methode aus einer KLasse benutzt, so hat das wie folgt auszusehen: "SELECT " . $db->feldname . " FROM tabelle WHERE id = " . $user->getId(); 2. Es gibt reservierte Wörter, wie z.b. DATE. Das sind Funktionen in sql. Diese Namen dürfen zwar als Spaltennamen verwendet werden, sollten jedoch - um die Verwechslung auszuschließen - von Backticks umgeben sein. Dieses Zeichen findet ihr in der Regel neben der Backspace-Taste bei gedrückter Shift-Taste; danach muss noch Space gedrückt werden: ` z.b.: "SELECT `timestamp` FROM tabelle" Sollten Tabellen verknüpft werden, hat das so auszusehen: "SELECT `time`.`timestamp` , `datetime`.`time` FROM `time` , `datetime`" Eine Übersicht über alle reservierten Wörter: http://dev.mysql.com/doc/refman/4.1/...ved-words.html 3. Ich habe auch gesehen, dass einige "Neulinge", wenn der Wert genau einer Zelle ausgelesen wird, erwarten, dass der Inhalt der Zelle direkt der Rückgabewert der sql-Abfrage ist. Dem ist nicht so. PHP-Code:
echo $qry; nicht den Inhalt der Zelle feldname in der Zeile wo id = 3 ist aus. es muss auch hier so aussehen: PHP-Code:
man muss sie vorher mit serialize() in einen string umwandeln. nach dem auslesen wieder mit unserialize() in ein array verwandeln. dies gilt übrigens auch für das speichern von arrays in cookies. 5. ich zitiere mal c4: Zitat:
7. Wenn ihr etwas postet, was fehlerhaft ist, dann auch bitte den dazugehörigen MySQL-Error; den bekommt ihr wie folgt heraus: PHP-Code:
8. Falls ihr obenstehendes beachtet habt, gebt euch euer SQL-Statement via echo aus und schaut, ob alles so aussieht, wie ihr es euch vorgestellt habt. ======================================== Ich kleb das mal als sticky fest, wenn jemandem noch was einfällt, bitte hier hin posten. |
Zitat:
|
Zitat:
|
Wie widerlich.
|
AW: Typische Fehlerquellen im SQL - bitte VOR dem Posten lesen!
PHP-Code:
PHP-Code:
|
AW: Typische Fehlerquellen im SQL - bitte VOR dem Posten lesen!
wieso sollte deins falsch sein wenn es so funktioniert? warum sollte meins falsch sein, nur weil es auch nen anderen weg gibt das gleiche zu erledigen?
beides ist richtig, denke ich. |
AW: Typische Fehlerquellen im SQL - bitte VOR dem Posten lesen!
Zitat:
Zitat:
Zitat:
|
AW: Typische Fehlerquellen im SQL - bitte VOR dem Posten lesen!
Achso, also benutze ich ne alte Version, schnell umsteigen :D
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 18:48:53 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.