1

情報: [ 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 でデコードなし

この情報がやり過ぎではないことを願っています。

4

0 に答える 0