特殊字符会中断 MySQL 插入


special characters break mysql insert

我有一个这样的 mysql 语句:

mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$_POST["comments"]', '$_POST["desc"]',$_POST["synopsis"])");

如您所见,非常简单明了。问题是当我在表单中输入特殊字符时,它不会将数据插入我的表中(使用 phpmyadmin 直接检查它是否已插入)。例如,如果我在注释文本区域中输入此值:"这是一条评论"这行得通如果我改为:"你叫什么名字?:约翰·多伊是我的名字"它坏了。我知道这是因为 mysql 使用这些字符...关于我应该做什么的任何建议?

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"])."'"); 
$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'");
$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'");

欲了解更多信息,谷歌"php addslashes",或看看这个页面看起来解释性 http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php