Moin!
Außerdem fügst du die Variablen $x1,$y1,$x2,$y2 ohne Anführungszeichen ein, was nur korrekt ist, falls es sich um nummerische Felder handelt, was ebenfalls geprüft werden müßte.
Ich wiederhole mich gerne ganz deutlich: Der Verzicht auf die einfachen Anführungszeichen um Felder, die numerischen Inhalt haben, ist in SQL (mindestens MySQL) nicht hilfreich bis schädlich. Man sollte grundsätzlich ALLE Felder in Anführungszeichen setzen und dann ebenso grundsätzlich escapen. Die Datenbank erhält, egal ob mit oder ohne Anführungszeichen, sowieso einen String mit dem Zahlenwert, der wieder zu parsen und zu verstehen ist, sofern das Ziel ein Feld mit Zahlentyp ist.
Anführungszeichen sind wirklich nur dann entbehrlich, wenn die Zahl als konstanter Text im Query steht, somit garantiert nicht "aus Versehen" plötzlich Text enthält (der zu escapen wäre, was nur innerhalb von Anführungszeichen gültiges SQL ergibt), oder wenn mathematische Rechnungen durchzuführen sind.
Im Gegensatz dazu fügst du hinten '2' und '0' ein, wo die Anführungszeichen - wahrscheinlich - unnötig sind, falls es sich nicht um Felder vom Typ VARCHAR, CHAR oder TEXT handelt. Wenn du wirklich '2' und nicht 2 einfügen möchtest und weißt, was du tust, vergiss diese Anmerkung und entschuldige die Kritik.
MySQL wandelt für Textfelder eine 2 in eine '2' und für Zahlenfelder eine '2' in eine 2. Der Arbeitsaufwand ist dabei in jedem Fall der gleiche, da beide Darstellungen im Query Strings sind, die man parsen muß.
- Sven Rautenberg
"Love your nation - respect the others."