PHP プロジェクトでこのエラーがランダムに発生します。Laravel フレームワークを使用しています。少しグーグルで調べたところ、これは PDO が原因で発生している問題であることがわかりました。エラーが発生する直前に実行しようとしているクエリをログに記録しようとしましたが、MySQL を介して同じクエリをコピーして実行すると、問題なく実行されます。以下はコード スニペットです。
foreach($batches as $batch){
$query_post = "INSERT INTO posts (`fb_post_id`, `page_id`, `from_user_id`,`to_user_id`, ".
"`object_id`, `from`,`to`, `message`, `picture`,`link`, `icon`, `type`,`name`, ".
"`status_type`, `privacy`,`caption`, `description`,`story`, `actions`, `created_time`, ".
"`comment_count`,`like_count`, `created_at`) VALUES ";
$query = '';
foreach($batch as $row){
$comma_separated = implode("','", $row);
$query .= "('".$comma_separated."'),";
}
$query_post .= $query;
$query_post= substr($query_post, 0, -1);
$query_post= utf8_encode($query_post);
Log::write('info', ' POST QUERY : '.$query_post);
DB::query($query_post);
}
ループで数回実行した後、次のエラーが表示されます: SQLSTATE[HY000]: General error: 2053 in laravel/database/connection.php line 293.
PS: 数回の実行は乱数を意味し、特定の時点で発生するわけではありません。私の PHP バージョンは 5.3.10 で、5.4.4 でも同じエラーが発生しました。