MySQLi与real_escape_string不使用括号

时间:2014-10-31 10:35:42

标签: php mysqli

我有一个文本框,可以在数据库中插入一个新行。

问题是如果用户输入括号“(”或“)”,则不会插入行。

我尝试过使用$link->real_escape_string($value),但这似乎只能解决撇号问题。

还有另一个用括号吗?

谢谢!

编辑:代码:

foreach($_POST as $name => $value) {
    if(0 === strpos($name, "amenities")){
        //print "$name : $value<br>";
        $query = "INSERT into content (`type`, `value`, `additional`) VALUES ('amenities', '" .$link->real_escape_string($value) . "', '')" or die("Error in the consult.." . mysqli_error($link)); 
        $result = mysqli_query($link, $query); 
    }
}

3 个答案:

答案 0 :(得分:2)

如果您的值中有space,请尝试此解决方案

$query = "INSERT into content (`type`, `value`, `additional`) VALUES ('amenities', '".mysqli_real_escape_string($link,$value)."', '')" or die("Error in the consult.." . mysqli_error($link));

答案 1 :(得分:0)

尝试代替 $link->real_escape_string($value)

做类似的事情:

mysqli_real_escape_string($link, $value)

答案 2 :(得分:0)

使用mysqli_real_escape_string($ link,$ value)或只是{} ...查看示例:

&LT; ?PHP  $ query =&#34; SELECT * FROM users WHERE user =&#39; {$ _ POST [&#39; username&#39;]}&#39;和密码=&#39; {$ _ POST [&#39;密码&#39;]}&#39;&#34;;

mysqli_query($查询);

echo $ query;

&#34; SELECT * FROM users WHERE user =&#39; aidan&#39;和密码=&#39;&#39;或&#39;&#39; =&#39;&#39;&#34; ?&GT;