Guten Tag,
Aus dem Wort ANSI_QUOTES kann ich irgendwie nicht darauf schließen, welche damit gemeint sind. Das MySQL-Handbuch jedenfalls sagt, dass damit die single quotes als alleinige Möglichkeit für Strings eingeschaltet werden. Die double quotes sind dann die Quote-Zeichen für Identifier.
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.
Aber was nützt mir das? Dass ich mich auf die Standard-Zeichengebung "einschränken" muss? Das sähe ich ja noch ein, wenn ich von einem Standard-System komme und dauernd " statt ` tippe. Aber wenn ich nie die Absicht habe, das Projekt von MySQL wegzubewegen ... Also, warum ist das eine gute Idee und warum prinzipiell?
Der TRADITIONAL-Modus, der MySQL zu einem strikteren Verhalten zwingt, bezieht sich nicht nur auf die Quotes, 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.
Solange ich hier im Forum mitlese ist mir noch nie aufgefallen, dass jemand aufgrund des ANSI_QUOTES-Modus Kontextwechselnichtbeachtungsprobleme
Ich mag Komposita ;-)
bekam. Noch nicht mal dass den jemand ernsthaft nutzt.
Da würde ich dir zustimmen. Ich bin schon glücklich, wenn dies jemand liest und ggf. auf die Idee kommt, nach dem Modus zu schauen.
Es mag ein Problem sein, wenn jemand die falschen Zeichen am falschen Ort verwendet und daraufhin mit den falschen Maskierfunktionen die Werte bearbeitet. Doch das wird eher auffallen, weil der Programmteil generell nicht wie gewünscht arbeitet und weniger weil bestimmte Daten ein Problem bereiten. (Und wem das nicht auffällt testet seine Programme nicht genug.)
Nun, das ist ja eh immer das Problem. Auch wer Probleme mit den magic_quotes_* bekommt, hat sein Programm nicht ausreichend getestet.
Es kommt mir nicht darauf an, den Artikel mit allen möglichen Konstellationen zu (über)füllen. Es sollte schon eine gewisse Relevanz haben und die Leser hauptsächlich für die Problematik als solche sensibilisieren. In Relevanzsinne habe ich die Magic Quotes aufgenommen, weil die leider immer noch ein signifikantes Problem sind.
Aus diesem Grund schlug ich vor, den Artikel in mehrere, thematisch zusammenhängende Artikel zu teilen, so bald weitere Systeme (egal ob Programmiersprachen, Datenbanken oder sonstwas) behandelt werden.
Gruß
Christoph Jeschke
Zend Certified Engineer
Certified Urchin Admin