您好我正在尝试创建一个运行查询的数据库类。因为我将where条件作为参数发送到像id=$no AND name='vig'
这样的函数。现在我想用mysqli_real_escape_string替换值,如id=mysql_real_escape_string($no)
。像这样。我怎么能用preg_replace做到这一点。
我在搜索时得到了这个正则表达式,但我不知道如何在preg_replace中使用它。 '/(["\'])([^"\']+)\1/'
答案 0 :(得分:2)
答案 1 :(得分:1)
这是有史以来最危险的事情,我不想写这个:
<?php
$test="we will ' hack your db";
$test2=" ' OR SANITIZE";
$where='`$test` = \'1\' and `$test2` = \'2\'';
$where=preg_replace('/(\$[^ `]+)/e','mysql_real_escape_string($1)',$where);
echo($where);
?>
这很危险,不仅因为mysql_real_escape_string,还因为带有/ e(执行)标志的preg_replace。只是看看它是否以及如何完成。
如果你还是要学习,请学习预备语句。