1

メールボックスからメールを取得して DB に保存する機能があります。クエリの 95% ではすべてが正しく機能しますが、一部のクエリでは次のエラーで失敗します。

警告: PDOStatement::execute(): メッセージ: 文字列 ' の後の引用符が閉じていません

問題の原因となっている文字を追跡できました。そのうちの 1 つは ASCII 160 と ASCII 147 のstr_replaceようです。メールで単純なコードを実行すると、テキストをエラーなしで正しく保存できます。なぜそれが問題を引き起こすのですか?

    $body = $this->get_part($imap, $b, "TEXT/HTML");
    if($body == "")
    {
        $body = $this->get_part($imap, $b, "TEXT/PLAIN");
    }
    $header = imap_headerinfo($imap, $b);
    $subject = $header->subject;
    $fromaddress = $header->fromaddress;
    /////////////////////////////
    $data = array('content'=>$body);
    $query = $PDO->prepare('insert into [tbl_test] (content) values (:content)');
    $query->execute($data);
    break;
4

1 に答える 1

0

クエリを保存する前に uth8_encode() を実行すると問題が解決しました。

于 2013-09-26T13:09:35.653 に答える