信息:我正在使用 [ MySQL 5.5.16 ]-[ PHP 5.3.8 ]-[ jqSajax 1.0.2 ]-[ JQuery 1.2.2 ]
PHP、MySQL、Apache 和 HTML 标头是字符集 UTF-8
我已经为此工作了三天。
一个数据库:
tblitems InnoDB
tblarticles MyISAM 全文
问题:我无法通过简单的插入来插入大量文本,因为我有特殊字符“”“'' - ...</p>
问题:如何将大量文本插入带有特殊字符“”“'”的 LONGTEXT 字段 - ...
搜索/尝试:见下面的代码和底部的 MySQL 输出
在 Javascript AJAX 中编码 encodeURL()
decode IN PHP urldecode() 构建 SQL Query
代码:
=========== 创建javascript ==========
<?php //calls php function through jqsajax
$strOnClickString = "$('#none').html(";
$strOnClickString .= '$.x_Add_Item(';
//$strOnClickString .= "$('#sel_txtPublication').val()"; //$strPublication
$strOnClickString .= "'Co-Worker Letters'"; //$strPublication
$strOnClickString .= ", $('#sel_txt_Title').val()"; //$strTitle
$strOnClickString .= ", $('#sel_txtMonth').val()"; //$strMonth
$strOnClickString .= ", $('#sel_txtYear').val()"; //$strYear
$strOnClickString .= ", $('#sel_txtAuthor').val()"; //$strAuthor
$strOnClickString .= ", encodeURI($('#strArticle').val())"; //$strArticle
$strOnClickString .= '))';
echo Create_Input('button','Submit Text','10','btnSubmit','btnSubmit','onclick',$strOnClickString); ?>
========= PHP 创建 SQL ===========
//=========================================================================
function Add_Item($strPublication, $strTitle, $strMonth, $strYear, $strAuthor, $strArticle){
//=========================================================================
$sql1 = "";
$sql = "";
$sql1 = "INSERT INTO `hwa_archive`.`tblarticles`";
$sql1 .= "(`strArticle`)";
$sql1 .= " VALUES (";
if ($strArticle != 'ignore')
{
$sql1 .= '"' . urldecode($strArticle) . '", ';
}
$sql1 .= ")";
$sql1 = str_replace('", )','" )',$sql1);
$res2 = mysql_query($sql1);
//$res2 = mysql_query('SELECT LAST_INSERT_ID()');
$intArticle_ID = mysql_insert_id();
$sql = "INSERT INTO `hwa_archive`.`tblitems`";
$sql .= "(`strPublication`, `strTitle`, `strMonth`, `strYear`, `strAuthor`, `intArticle_ID`)";
$sql .= " VALUES (";
if ($strPublication != 'ignore')
{
$sql .= "'$strPublication', ";
}
if ($strTitle != 'ignore')
{
$sql .= "'$strTitle', ";
}
if ($strMonth != 'ignore')
{
$sql .= "'$strMonth', ";
}
if ($strYear != 'ignore')
{
$sql .= "'$strYear', ";
}
if ($strAuthor != 'ignore')
{
$sql .= "'" . $strAuthor . "', ";
}
$sql .= "'$intArticle_ID', ";
$sql .= ")";
$sql = str_replace("', )","' )",$sql);
$res2 = mysql_query($sql);
Return $intArticle_ID . "<br /><br />" . $sql . "<br /><br />" . $sql1;
}
MySQL 输出:
您在世界网络中的角色(必须是单引号')
您在世界%u2019s 网络中的角色(%u2019 需要是一个单引号')在 add_item 中没有解码
我希望这个信息不会矫枉过正。