【发布时间】:2010-01-14 16:28:08
【问题描述】:
由于在将字符串输入数据库之前没有检查字符串是否被转义的功能,我该如何使用正则表达式来做到这一点?
$string = 'some" string';
if(!preg_match('//',$string))
{
$string = mysqli_real_escape_string($string);
}
php手册:
mysqli_real_escape_string 反斜杠编码为 NUL (ASCII 0)、\n、\r、\、'、" 和 Control-Z 的字符。
【问题讨论】:
-
不难检查某些字符前是否有反斜杠,但不可能检查一段文本中的反斜杠是否适用于任意应用程序。
-
这个先前的答案是正确的。 stackoverflow.com/questions/2065391/…
-
拜托,拜托,拜托,只是构造你的代码,这样你调用 mysqli_real_escape_string 的唯一地方就在你创建你的 sql 语句之前。那么你就不需要知道它是否已经完成了。