情報: [ MySQL 5.5.16 ]-[ PHP 5.3.8 ]-[ jqSajax 1.0.2 ]-[ JQuery 1.2.2 ] を使用しています
PHP、MySQL、Apache、および HTML ヘッダーは文字セット UTF-8 です。
私はこれに3日間取り組んできました。
1 つのデータベース:
tblitems InnoDB
tblarticles MyISAM FULLTEXT
問題:特殊文字 " " ' ' — … があるため、単純な挿入では大量のテキストを挿入できません。</p>
質問: LONGTEXT フィールドに特殊文字 " " ' ' — … を含む大量のテキストを挿入するにはどうすればよいですか?
検索済み/試行済み:以下のコードと下部の MySQL 出力を参照してください
エンコード IN Javascript AJAX encodeURL()
PHP urldecode() でデコードして SQL クエリを構築する
コード:
=========== 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 でデコードなし
この情報がやり過ぎではないことを願っています。