【发布时间】:2014-05-20 21:28:15
【问题描述】:
我不知道为什么会遇到这个错误。
我有以下脚本:
foreach($brands as $brand){ // 这个循环大约 600 项 …… …… DB::table('mailing_list')->插入(数组( '电子邮件' => $电子邮件, '来源' => $来源, 'source_url'=> $brand->external_url, 'facebook_url' => $facebook_url, 'instagram_id' => $instagram_username, 'instagram_url' => $instagram_url, 'instagram_followers' => $instagram_followers )); }总是在同一个项目上中断
发送 STMT_PREPARE 数据包时出错。 PID=2 (SQL: 插入到 `mailing_list` (`email`, `source`, `source_url`, `facebook_url`, `instagram_id`, `instagram_url`, `instagram_followers`) 值 (some@email.com, source, www.url.com, https://www.facebook.com/url, some_username, http://instagram.com/url, 501))之前我执行了 29 个查询,现在是 34 个。
我想更好地理解这个错误:可能是单个条目破坏了它,但即使我发布的数据是胡言乱语,实际的数据在我看来也不错。
我的尝试:
设置时间限制(3600); DB::connection()->disableQueryLog(); DB::reconnect(Config::get('database.default')); // 这个在每个 foreach 循环之后【问题讨论】:
-
在你的mysql配置中使用
max_allowed_packet怎么样?这是警告吧? -
@majimboo,我忘了提到我在共享主机上......从这个问题stackoverflow.com/questions/5688403/… 看来我无法改变这个值,但我会给试试看
-
插入查询看起来像缺少字符串值的单引号,您可能需要检查。
-
这似乎是由 Laravel 查询构建器构建的。是的,它缺少那些表示字符串的 qoutes。可能想清理你的 laravel 版本。
-
你会如何检查它?我可以告诉你,我正确插入了大约 40 行,我认为这不是问题......但无论如何我都会尝试对其进行清理
标签: php mysql laravel laravel-4 eloquent