我有很多文本要插入到使用PHP的MySQL表中。部分文字是這樣的例子:在PHP中,在插入到MySQL表之前,如何在我的字符串中轉義單引號?
Yes, this is 'great'!
爲了填補這一成的SQL語句,我需要逃避'
。
我使用額日格替換$text=mb_ereg_replace("'","\\'", $text);
做了以下工作:
$sql="insert into mytable (msg) values ('".$text."')";
現在我發現,也有另一種文字風格,在這裏我必須保存到MySQL是這樣的:
As you can see the \' world\' is a "disc"!
所以,我想增加更多mb_ereg_replace這樣的:
$text=mb_ereg_replace("'","\\'", $text);
$text=mb_ereg_replace("\\","\\\\", $text);
但是這不起作用,我只是得到錯誤信息:PHP Warning: mb_ereg_replace(): mbregex compile err: end pattern at escape in [...]
這是什麼原因造成的?我可能犯了一些錯誤,但無法找到它!
謝謝你的任何幫助。
我正在使用'mb_ereg_replace'。它看起來像,這不是廢棄:http://www.php.net/manual/en/function.mb-ereg-replace.php問題是,不存在多字節版本的'preg_replace',像'mb_preg_replace()'。所以它看起來像'mb_ereg_replace'是使用正則表達式搜索/替換使用多字節(UTF-8)字符串的唯一方式!? –
是的,您可以使用'preg_replace' - 您可以使用'u'開關在'preg_xx'函數中啓用UTF-8。有關更多信息,請參閱http://www.regular-expressions.info/php.html。 – Spudley
哦,謝謝!如果在php.net的preg_replace文檔頁面上有任何提示,那將會很有幫助謝謝! :-) –