1

我有一个功能可以从我的邮箱中提取电子邮件并将它们保存在我的数据库中。对于 95% 的查询,一切正常,但对于某些查询失败并出现以下错误:

警告:PDOStatement::execute(): 消息:字符串 ' 后面的未闭合引号

我能够跟踪导致问题的字符。看起来其中之一是 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 回答