dedlfix: mysql_real_escape_string() für MS-SQL nachgebaut

Beitrag lesen

echo $begrüßung;

ich muss derzeit leider meine Seite umstellen auf MS-SQL. Vorher hab ich mit MySQL gearbeitet.
Nun möchte ich Escape-Strings vor dem Eintrag in die Datenbank maskieren, was ich bisher immer mit mysql_real_escape_string() gemacht hab. Leider gibt es wohl keine solche Funktion für MS-SQL.
Ziel soll sein: Alle Backslashes mit einem weiteren Backslash zu maskieren. Alle einfachen und doppelten Anführungszeichen maskieren.

Bist du sicher, dass das die richtige Methode ist? (Wenn es die richtige wäre hätte ich keinen Einwand vorzubringen.) Gemäß Using char and varchar Data gelten andere Regeln für das Maskieren von entweder einfachen oder doppelten Anführungszeichen. Siehe auch Security Considerations for SQL Server - SQL Injection im Abschnitt Filtering Input, und für LIKE, wenn die Zeichen keine Joker-Funktion haben sollen, den folgenden. Informiere dich auf alle Fälle in dem für deine Server-Version zuständigen Handbuch. Ich hab hier das vom SQL Server 2005 verlinkt.

Da ich alle Backslashes maskiere, dürfte das ja auch auf \n \r \x1a  usw. zutreffen.

Ja, aber nur, wenn diese als String, also als \ gefolgt von n usw. notiert sind, nicht, wenn diese bereits als ein Zeichen vorliegen

echo "$verabschiedung $name";