【问题标题】:Laravel Multiple insert not working says "insert value list does not match "Laravel 多次插入不起作用说“插入值列表不匹配”
【发布时间】:2019-02-25 10:40:43
【问题描述】:

我有一个列表,哪个字段是通过 import xlxs 动态获取的。我已经生成了一个数组列表。只有 xlxs 文件有 1 条记录时插入工作但在获取多行时不起作用。

当有超过 1 个数组时,它会说:

SQLSTATE[21S01]:插入值列表与列列表不匹配:1136 列数与第 2 行的值数不匹配

然后是sql代码

我的数组列表如下:

Array(
 [0] => Array
    (
        [name] => Md. XXXX
        [email] => abc@gmail.com
        [mobile_no] => 1751017812
        [password] => $2y$10$vgmdsjT64aXHQcPA6vh8LuWfdWWA/NCtC8NLYTl8yyQ/wtXdcSNHy
        [user_type_id] => 1
        [designation] => Sr. Software Engineer
        [market_code] => mirpurA203
        [product_code] => Seclo201
        [territori_code] => T352
        [region_code] => Mirpur334
        [division_code] => Dhaka31
    )

 [1] => Array
    (
        [name] => Md. XX
        [email] => def@gmail.com
        [mobile_no] => 1761017812
        [password] => $2y$10$52CtpkGrKfriInOmnz.guOrIvnCJyxgYRbfEkDl6nFkPD2UYcvhiO
        [user_type_id] => 2
        [designation] => Sr. Software Engineer
        [territori_code] => T352
        [region_code] => Mirpur334
        [division_code] => Dhaka31
    )
)

我也尝试过 eloquent 和 DB insert,但它在只有一条记录时可以工作。

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    一次插入多个项目时,所有行都应具有相同的项目。这是因为 MySQL 期望这一点。插入查询指定要插入一次的列,并期望后面的所有数据都与这些列匹配。

    INSERT INTO `table` (`col_1`, `col_2`, `col_3`) VALUES (`val_11`, `val_12`, `val_13`), (`val_21`, `val_22`, `val_23`)
    

    您的第二个对象缺少market_codeproduct_code。将这些添加到每条记录或单独插入记录。

    【讨论】:

    • 谢谢。是的,我一次做了多个插入。希望默认值会处理它,但它没有。
    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2014-07-12
    • 2016-06-13
    相关资源
    最近更新 更多