无法插入包含'的字符串

时间:2013-11-25 00:06:34

标签: php

我写了一个脚本来在我的数据库中插入记录。我得到的唯一问题是当我尝试存储包含'字符的数据时,脚本不起作用,并且它不会在数据库中存储任何内容。例如John's BirthdayAmy's Home等。这个问题的任何解决方案允许像'这样的特殊字符存储在数据库中并检索它们而不会损害安全性吗?

mysqli_query($con,"INSERT INTO Story (desc)
VALUES ('$mytext')");

2 个答案:

答案 0 :(得分:1)

PHP的mysqli_real_escape_string专门用于此目的。你的问题是,MySQL会将引号解释为查询的一部分而不是值。你需要转义这样的字符,这样它们就不会影响你的查询 - 这就是SQL注入的内容。

$mytext = mysqli_real_escape_string($con, $mytext);
// continue with your query

手动:http://php.net/manual/en/mysqli.real-escape-string.php

答案 1 :(得分:0)

通过mysqli_real_escape_string过滤查询的变量部分。