我有一个像这样的mysql语句:
mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$_POST["comments"]', '$_POST["desc"]',$_POST["synopsis"])");
如你所见,非常简单明了。问题是当我在表单中输入特殊字符时,它不会将数据插入到我的表中(使用phpmyadmin直接检查它是否已插入)。
例如,如果我把评论textarea放入这个值:“这是一个评论”
这很有效
如果我反而说:“你的名字是什么?:John doe是我的名字”
它破了。我知道它因为mysql使用了字符......对我应该做什么的任何建议?
答案 0 :(得分:7)
mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('".mysql_real_escape_string($_POST["comments"])."', '".mysql_real_escape_string($_POST["desc"])."','".mysql_real_escape_string($_POST["synopsis"])."'");
答案 1 :(得分:0)
$comments = mysql_real_escape_string($_POST['comments']);
$desc = mysql_real_escape_string($_POST['desc']);
$synopsis = mysql_real_escape_string($_POST['synopsis']);
mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$comments', '$desc', '$synopsis'");
答案 2 :(得分:-1)
$comments = mysql_real_escape_string($_POST['comments']);
$desc = mysql_real_escape_string($_POST['desc']);
$synopsis = mysql_real_escape_string($_POST['synopsis']);
mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$comments', '$desc', '$synopsis'");
有关更多信息google“php addslashes”,或者查看此页面看起来是解释http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php