メールボックスからメールを取得して 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;