我在從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