在某些特殊情况下不会插入数据?
Data does not get inserted in some special cases?
这是我使用的代码
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)");
现在,经过一些测试后,我发现每当我在某些地方键入撇号时,值就不会插入到 table 中。我该如何防止这种情况?是否有任何其他特殊字符可能会导致此问题。
这是我正在做的事情: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);
还有什么事吗?谢谢你的帮助。
你只需要在插入的时候放上这个。
$title = addslashes($_POST['title']);
$content = addslashes($_POST['content']);
$writer = addslashes($_POST['writer']);
并在展示(上市)时
stripslashes($VariableName)
希望对您有所帮助。
这是我使用的代码
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)");
现在,经过一些测试后,我发现每当我在某些地方键入撇号时,值就不会插入到 table 中。我该如何防止这种情况?是否有任何其他特殊字符可能会导致此问题。 这是我正在做的事情: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);
还有什么事吗?谢谢你的帮助。
你只需要在插入的时候放上这个。
$title = addslashes($_POST['title']);
$content = addslashes($_POST['content']);
$writer = addslashes($_POST['writer']);
并在展示(上市)时
stripslashes($VariableName)
希望对您有所帮助。