我在从PHP中将某些字符保存到MySql数据库表时遇到麻烦。我有一个WYSIWYG编辑器,通过它我可以创建页面内容并将它们保存到数据库中。当我的代码中有' '或撇号时,html文本不会保存到数据库中。以下是我的代码:使用PHP和MySQL保存HTML
在将数据发送到服务器:
function SaveContent()
{
var content = CKEDITOR.instances.ContentEditor.getData();
content = content.replace(/"/g, "'");
var page = document.getElementById("hfpage").value;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
location.href=document.referrer;
}
}
//alert(content);
xmlhttp.open("GET","savecontent.php?content="+content+"&page="+page,true);
xmlhttp.send();
}
PHP代码的数据库中保存:我已经在使用“mysql_real_escape_string”
//save content editted/added through the HTML editor
function SaveContent($page, $content, $user)
{
$con = $this->OpenConnection();
//first check if the content exists, if so do an update
$sql = "SELECT * FROM sitecontent WHERE Page = '" . $page . "'";
$content = mysql_real_escape_string($content);
$rowcount = mysqli_num_rows(mysqli_query($con,$sql));
if($rowcount > 0)
{
//run update
$sql = 'UPDATE `sitecontent` SET `Content`="' . $content . '", `UpdatedBy`="' . $user . '", `LastUpdated`= NOW() WHERE `Page` = "' . $page . '"';
$result = mysqli_query($con,$sql);
//echo $sql;
}
else
{
//run insert
$sql = 'INSERT INTO `sitecontent` (`Page`, `Content`, `LastUpdated`, `UpdatedBy`) VALUES ("' . $page . '","' . $content . '", NOW(),"'. $user . '")';
$result = mysqli_query($con,$sql);
}
}
通知,因为我已经看到了一些帖子在论坛上,但这没有帮助。
欣赏有人能帮我解决问题。
如果你正在使用'mysqli_query()'你应该使用准备好的语句。 – samayo