Hi!
Und im Nicht-ANSI_QUOTES-Modus funktionieren die Quotes eben in einem anderen Kontext. Und da der Kontext je nach Einstellung wechselt, sollte das zumindest vermerkt sein.
Das sind nicht die Art Kontextwechsel, die mit dem Artikel gemeint sind. Denn dann müsste beispielsweise auch ein Wechsel des DBMS von MySQL zu PostgreSQL thematisiert werden. Ist ja auch ein anderer Kontext. Der ANSI_QUOTES-Modus ändert nichts am Prinzip und der Vorgehensweise. mysql_real_escape_string() kann weiterverwendet werden und bei den Identifiern ist immer noch das Quote-Zeichen zu verdoppeln.
Der TRADITIONAL-Modus, der MySQL zu einem strikteren Verhalten zwingt, bezieht sich nicht nur auf die Quotes,
Streiche "nur", denn dafür ist ANSI_QUOTES zuständig und nicht TRADITIONAL.
sondern z.B. auch darauf, wie MySQL auf Fehler reagiert (z.B. erzeugt MySQL in gewissen Fällen einfach nur eine Warnung und setzt die Verarbeitung trotzdem fort, wo es sinnvoll wäre, die Verarbeitung abzubrechen. Oder MySQL versucht bei falschen Typen oder einem Wertebereichüberlauf, den Wert zu einem möglichst passenden Wert zu konvertieren). So ein Verhalten kann gewünscht sein, es kann aber auch geändert werden. Ich vermute einfach mal, dass die meisten Nutzer gar nicht wissen, dass man MySQL so (um)konfigurieren kann.
Gut, das ware ein Argument. Jedoch eins für TRADITIONAL und nicht für ANSI_QUOTES. Du schweifst ab :-)
Ich bin schon glücklich, wenn dies jemand liest und ggf. auf die Idee kommt, nach dem Modus zu schauen.
Aber welchen genau meinst du nun? Es gibt derer ja noch eine ganze Menge. Und kombinieren kann man sie auch, wenn man will.
Auch wer Probleme mit den magic_quotes_* bekommt, hat sein Programm nicht ausreichend getestet.
Das Problem der Magic Quotes ist aber eins, das man (als Anfänger) nicht unbedingt kennt. In den ANSI_QUOTES-Modus zu schalten passiert hingegen mit Absicht.
Lo!