phpbar.de logo

Mailinglisten-Archive

[php] mysql_real_escape_string für firebird nachbauen

[php] mysql_real_escape_string für firebird nachbauen

Andi Voss andi at andis.mine.nu
Mit Aug 23 15:09:45 CEST 2006


Hi,

ich bin gerade dabei eine Kopie von mysql_real_escape_string() für firebird zu 
bauen.
mysql_real_escape_string() versieht folgende Zeichen mit einem "\":  \x00, \n, 
\r, \, ', " and \x1a
Ich benötige noch ein paar weitere Zeichen, unter anderem das Semikolon ";".

Jetzt gibt es ja schon addslashes() und escapeshellcmd() und quote_meta() und 
preg_quote().
addslashes() setzt vor single quote ('), double quote ("), backslash (\) and 
NUL (the NULL byte) eine backslash. Mein Semikolon ist damit leider noch 
nicht abgedeckt.
escapeshellcmd() setzt vor #&;`|*?~<>^()[]{}$\, \x0A  and \xFF. ' and " einen 
backslash, aber nur, wenn diese zeichen NICHT paarweise auftreten.
Mit addslashes() kombiniert wären alle Zeichen abgedeckt, aber die quoten sich 
ja dann selber:
Aus:
$string = "Te\st";
$quote = addslashes( escapeshellcmd( $string ) );
echo $quote; #--> Te\\\\st

preg_quote hat diese Zeichen . \ + * ? [ ^ ] $ ( ) { } = ! < > | :
Da fehlen dann wieder die ', ", ; etc. Zeichen. Man kann ja einen zusätzlichen 
angeben, aber eben nur einen.

Gibt es eine Funktion, die alle genannten Zeichen vereint?

Oder muss ich mir die Funktion selber bauen mit preg_match() und 
preg_replace()?
Dann würden die Probleme schon anfangen... Könnte mir da jemand einen Ansatz 
liefern?
Andere Vorschläge?

Danke Gruss
Andi

php::bar PHP Wiki   -   Listenarchive