codeigniter - Codeigniter insert_batch 失败奇怪的数组变成了字符串
问题描述
所以现在我传递了一个json,结果如下echo '<pre>' . var_export($data, true) . '</pre>';
:
array (
0 =>
array (
'booking_id' => 99,
'item_type' => '67',
'sales_item_seq' => '1',
'package_item_id' => '0',
'package_item_seq' => '0',
'package_group' => '0',
'package_group_rowspan' => '0',
'package_group_subdata_rowspan' => '0',
'channel_id' => '380',
'name_of_channel_programme' => '123',
'schedule_from' => '0000-00-00 00:00:00',
'schedule_to' => '0000-00-00 23:59:59',
'no_of_unit' => '123.00',
'exposure_inside_per_unit' => '',
'exposure_duration' => '123',
'advertising_offier' => '0.00',
'special_discount' => '0',
'net' => '0.00',
't_n_c' => '',
'remark' => '',
'status' => '1',
'create_datetime' => '2018-11-14 17:00:33',
'update_datetime' => '2018-11-14 17:00:33',
'channel' => '2',
'package_name' => '',
'sale_item_name' => 'hello',
'cat_id' => '1',
'aftersales_type' => '',
'typing_guide' => '',
'position' => '',
'platform_des' => 'hello',
'nature_des' => 'hello',
'unit_des' => 'Account',
),
...
...
...
9 =>
array (
'booking_id' => 99,
'item_type' => '59',
'sales_item_seq' => '1',
'package_item_id' => '0',
'package_item_seq' => '0',
'package_group' => '0',
'package_group_rowspan' => '0',
'package_group_subdata_rowspan' => '0',
'channel_id' => '0',
'name_of_channel_programme' => 'N/A',
'schedule_from' => '0000-00-00 00:00:00',
'schedule_to' => '0000-00-00 00:00:00',
'no_of_unit' => '123.00',
'exposure_inside_per_unit' => 'N/A',
'exposure_duration' => 'N/A',
'advertising_offier' => '1000.00',
'special_discount' => '100',
'net' => '0.00',
't_n_c' => '',
'remark' => '',
'status' => '1',
'create_datetime' => '2018-11-14 17:00:33',
'update_datetime' => '2018-11-14 17:00:33',
'channel' => '',
'package_name' => '',
'sale_item_name' => 'Service Charge',
'cat_id' => '7',
'aftersales_type' => '',
'typing_guide' => 'N/A',
'position' => 'N/A',
'platform_des' => 'N/A',
'nature_des' => 'Operations',
'unit_des' => 'Campaign',
),
10 =>
array (
'booking_id' => 99,
'item_type' => '0',
'sales_item_seq' => '0',
'package_item_id' => '161',
'package_item_seq' => '0',
'package_group' => '1',
'package_group_rowspan' => '6',
'package_group_subdata_rowspan' => '1',
'channel_id' => '39',
'name_of_channel_programme' => 'hello',
'schedule_from' => '0000-00-00 00:00:00',
'schedule_to' => '0000-00-00 23:59:59',
'no_of_unit' => '1.00',
'exposure_inside_per_unit' => '0',
'exposure_duration' => '',
'advertising_offier' => '180000.00',
'special_discount' => '100',
'net' => '0.00',
't_n_c' => '',
'remark' => '',
'status' => '1',
'create_datetime' => '2018-11-14 17:00:33',
'update_datetime' => '2018-11-14 17:00:33',
'channel' => 'Catch',
'package_name' => 'hello',
'sale_item_name' => 'hello',
'cat_id' => '1',
'aftersales_type' => '',
'typing_guide' => 'Name of Programme',
'position' => '',
'platform_des' => 'hello',
'nature_des' => 'Live',
'unit_des' => 'Live Segment',
'package_id' => '28',
),
...
...
...
'unit_des' => 'Video',
'package_id' => '28',
),
)
当我在在线查看器上查看它时,它看起来很好。在$this->db->insert_batch('table_name',$data)
这里之后是返回的错误,说Array
代码中有。
错误号:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“Array”附近使用的正确语法
我可以在以下内容的末尾找到它(认为这是 的原始输出insert_batch
):
INSERT INTO `table_name` () VALUES
(
'0.00',
'',
100,
'1',
'2',
'380',
'2018-11-14 17:06:46',
'123',
'',
'67',
'123',
'Access Right',
'0.00',
'123.00',
'0',
'0',
'0',
'0',
'0',
'',
'hello',
'',
'',
'hello',
'1',
'0000-00-00 00:00:00',
'0000-00-00 23:59:59',
'0',
'1',
'',
'',
'Account',
'2018-11-14 17:06:46'
)
,
...
...
...
(
'1000.00',
'',
100,
'7',
'',
'0',
'2018-11-14 17:06:46',
'N/A',
'N/A',
'59',
'N/A',
'Operations',
'0.00',
'123.00',
'0',
'0',
'0',
'0',
'0',
'',
'N/A',
'N/A',
'',
'Service Charge',
'1',
'0000-00-00 00:00:00',
'0000-00-00 00:00:00',
'100',
'1',
'',
'N/A',
'Campaign',
'2018-11-14 17:06:46'
)
,
array
我不知道为什么array
从 10 日起,所有元素都变成了一个。如果您需要更多信息,请告诉我。谢谢!
解决方案
你的数组索引不匹配。1 - 9 没有 package_id
您可以添加此项以确保所有数组都有 package_id 索引:
array_walk($array, function(&$val){ if (!isset($val['package_id'])) $val['package_id'] = null; });
推荐阅读
- javascript - 仅当输入有效时才显示按钮
- java - Java中的重叠对象
- c# - 使用单独的域和持久层处理聚合内部的更改
- scripting - Indesign脚本按顺序获取页面的所有文本框
- python - 在python中打印某个单词后如何使文本出现
- python-3.x - FitEllipse opencv-python > 4
- iteration - 如何使用 Racket 将递归过程(重复 fn)重写为迭代过程?
- node.js - 无法使用 axios 和 form-data 发布数据或发送文件
- python - 设置允许的压缩文件中的数据类型
- reactjs - 无法在 Gatsby 中注入第 3 方脚本