【问题标题】:SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders Laravel 8 upsertSQLSTATE [HY000]:一般错误:1390 准备语句包含太多占位符 Laravel 8 upsert
【发布时间】:2022-11-16 15:01:51
【问题描述】:

出现错误

SQLSTATE[HY000]: 一般错误: 1390 准备语句也包含 许多占位符...

同时更新大数据。

这是我的代码:

$reportItem = ReportItem::upsert($data->toArray(), ['someId','otherId']);

我认为这个限制是因为 mysql,我尝试使用块但没有成功。有什么帮助吗?

$reportItem = ReportItem::chunk(1000, upsert($data->toArray(), ['someId','otherId']));

【问题讨论】:

    标签: laravel laravel-8 placeholder upsert


    【解决方案1】:

    您需要chunk要插入的“$data”集合。

    foreach ($data->chunk(100) as $chunk) {
        ReportItem::upsert($chunk->toArray(), ['someId','otherId']);
    }
    

    【讨论】:

    • 你这个人,谢谢你!
    猜你喜欢
    • 2019-03-18
    • 2015-03-14
    • 2021-09-10
    • 1970-01-01
    • 2016-10-13
    • 2014-08-04
    • 2012-10-24
    • 2021-03-20
    相关资源
    最近更新 更多