SQL_ESC(string
)
'
) in SQL-Befehlen, um „SQL
Injection“[234] zu verhindern. Dies ist hilfreich bei Verwendung der
ODBC_...
()
-Datenbank-Funktionen
(siehe Abschnitt D.69, „ODBC_funktionsname
()
“)."
) zum Begrenzen von
Strings in SQL-Befehlen verwenden sollte, denn diese würden hier
nicht maskiert. Also noch einmal: Verwenden Sie,
ANSI-SQL-konform, einfache Anführungszeichen!exten => 123,1,Set(name=philipp) exten => 123,n,Set(telnr=${ODBC_SQL(SELECT `telnr` FROM `liste` WHERE `name`='${SQL_ESC(${name})}')} exten => 123,n,Verbose(1,Telefonnummer ist: ${telnr})
| | | 1.4 |————————| 1.6 |————————
-= Info about function 'SQL_ESC' =-
[Syntax]
SQL_ESC(<string>)
[Synopsis]
Escapes single ticks for use in SQL statements
[Description]
Used in SQL templates to escape data which may contain single ticks (') which
are otherwise used to delimit data. For example:
SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
[233] Typografisch ist es zwar nicht korrekt, hier von „einfachen Anführungszeichen“ zu sprechen, denn es handelt sich um Apostrophe, aber das lassen wir mal außer Acht. Jeder Programmierer weiß, was gemeint ist.
[234] SQL-Einschleusung, http://de.wikipedia.org/wiki/SQL-Injection