1

信息:我正在使用 [ 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 中没有解码

我希望这个信息不会矫枉过正。

4

0 回答 0