SQL-Code von MySQL V.4 u. V.5 nicht kompatibel ?
Robert
- datenbank
0 dedlfix
Hallo
Habe ein DB_Abfrage-Testscript (SQL-Code siehe unten) das auf mysql v. 4.0.24 problemlos funktioniert ( siehe http://fally.akis.at/DB_Abfrage_Beispiel.php ) auf mysql v. 5.0.21 getestet.
Dabei bekomme ich untenstehende SQL-Fehlermeldung.
Hat sich da etwas entscheidendes geändert bzw. welcher Fehler steckt da in meiner Abfrage ?
Wäre dankbar für Hinweise und eure Hilfe.
Robert
S Q L-C o d e:
SELECT * FROM fahrzeug_rela f INNER JOIN colour c, ps p ON c.cid = f.cid and
p.pid = f.pid WHERE f.auto like %s and c.farbe like %s and p.ps like %s
ORDER BY f.auto
Fehlermeldung:
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 'ON c.cid = f.cid
and p.pid = f.pid WHERE f.auto like '-1' and c.farbe like '-1' ' at line 1
echo $begrüßung;
Habe ein DB_Abfrage-Testscript (SQL-Code siehe unten) das auf mysql v. 4.0.24 problemlos funktioniert ( siehe http://fally.akis.at/DB_Abfrage_Beispiel.php ) auf mysql v. 5.0.21 getestet.
Wenn Syntaxfehler problemlos funktionieren, ist das ein Fehler im auswertenden Programm.
Dabei bekomme ich untenstehende SQL-Fehlermeldung.
Zu Recht.
Hat sich da etwas entscheidendes geändert bzw. welcher Fehler steckt da in meiner Abfrage ?
Ja, die oben angedeutete lasche Syntaxprüfung wurde korrigiert bzw. deine Join-Bedingungen passen nicht zum jeweiligen JOIN-Teil.
S Q L-C o d e:
Das ist noch nicht wirklich SQL-Code, da stecken noch Platzhalter drin, was aber in dem Fall nicht weiter tragisch ist.
SELECT *
FROM fahrzeug_rela f
INNER JOIN colour c, ps p ON c.cid = f.cid and p.pid = f.pid
Zuerst joinst du c. Dann joinst du p und gibst als Bedingung eine Verknüpfung f mit einem Feld aus c an. Notiere die c-Bedingung im c-Teil und alles wird gut ...
WHERE f.auto like %s and c.farbe like %s and p.ps like %s
ORDER BY f.auto
echo "$verabschiedung $name";