在某些特殊情况下不会插入数据?

时间:2015-01-15 08:26:05

标签: php mysql database tinymce htmlpurifier

以下是我正在使用的代码

if (!empty($_REQUEST['content'])&&!empty($_REQUEST['title'])&&!empty($_REQUEST['writer'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$writer = $_POST['writer'];
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$pure_content = $purifier->purify($content);
$entity_content = htmlentities($pure_content);
$entity_content = mysql_real_escape_string($entity_content);
mysql_query("INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)"); 

现在,经过一些测试后,每当我输入一个撇号时,我就会发现这些值不会插入到表格中。我该如何防止这种情况?是否有任何其他特殊字符可能会导致此问题。 以下是我的工作:http://8mags.com/bored/people/

修改

我更新了这两行代码

$add_content = "INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)"; 
$result = mysqli_query($mysqli, $add_content) or die(mysqli_error($mysqli));

还有什么需要改变吗?

第二次更新

我也改变了这段代码

$con = mysqli_connect($db_hostname,$db_username,$db_password);
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($db_database, $con);

还有别的吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你只需要在插入时加上它。

$title = addslashes($_POST['title']);
$content = addslashes($_POST['content']);
$writer = addslashes($_POST['writer']);

在演出时(上市)

stripslashes($VariableName)

希望这对你有所帮助。