Hallo,
Sinnvollerweise speichert man in der Datenbank keine Zielformatierungen etc. ab, da sich diese auch mal ändern können. Spricht: Irgendwelche HTML-Escape-Sequenzen oder HTML-Tags haben in einer Datenbank nichts zu suchen. Die Formatierung für das jeweilige Zielsystem ist Aufgabe des Zielsystems - speziell des Views im MVC-Kontext, und nicht der Datenbank.
Eingaben in die Datenbank müssen zwingend verifiziert und validiert werden.
Das Beispiel mit den SQL-Injections: Es ist halt quatsch! Natürlich könnte man "Little Bobby Tables" auch genau so eingeben (und abspeichern), wie vorgeschlagen: "Robert'); DROP TABLE Stundents;--", denn man arbeitet ja mit Servergebundenen Variablen bei der Eingabe und entsprechenden Escape-Sequenzen im Ausgabesystem.
Kurz: Es wird keine Zielformatierung bei der Dateneingabe vorgenommen, das Escapen von SQL-Inputs erledigt die DB-Middleware über die Servergebundenen Variablen, Escape-Sequenzen und Zielformatierungen werden während der Ausgabe vom Ausgabesystem durchgeführt. Alle Benutzereingaben sind vom Frontend und Backend auf ihren jeweiligen Scope zu verifizieren (richtigkeit = E-Mail auch wirklich eine brauchbare E-Mail? Geburtsdatum ist ein gültiges Datum in der Vergangenheit und nicht länger als 150 Jahre zurückliegend?) und validieren (gültigkeit, typ, (Integer = Integer, Strings nicht zu lang, usw.) usw.)
Noch kürzer: Ich kann hier ja auch schreiben <script>alert(1);</script> und jeder kann es lesen und niemand bekommt (hoffentlich) ein Modal mit einer 1 drinnen um die Ohren... und nein in der Datenbank ist garantiert nicht <script>alert(1);</script> gespeichert: Woher ich das weiß? Nun, ich kann den Text ja in einen Textfeld bearbeiten...