php执行mysql存储过程执行批量插入数据
首先在mysql中创建存储过程用来接收批量插入的数据
DELIMITER $$
CREATE PROCEDURE InsertBatchData(
IN tableName VARCHAR(255),
IN columnNames longTEXT ,
IN content longTEXT
)
BEGIN
SET @stmt = CONCAT('INSERT INTO ', tableName, ' (', columnNames, ') VALUES ', content);PREPARE stmt FROM @stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$DELIMITER ;
编写php代码调用mysql的存储过程public function test(){
$str = "('6.93014E+18', '抖店 JFP(3)', '接口抓取', '禾铂 总发货仓', '6930142211110210000', '6930142211110470000', '已取消', '网店销售', '款到发货', '全部退款', '退款成功', '2024-05-24 05:21:00', '2024-05-24 05:21:00', '', '48046fc7643a16f2bf8764d3138425f7', '', '黑龙江省 佳木斯市 前进区', '', '', '', '', '抖音-中通', '', '', '', '', '销售类型:自营;', '', '0', '0', '20', '589', '0', '114.4188', '0', '0.75', '0.06', '0.06', '3.8317', '否', '', '', '系统', '系统', '系统用户', '无', 'JFPCGS24050101', 'JFPCGS24050101', 'JumpFromPaper 行李牌—婴儿蓝 JFPCGS24050101', '', '1', '0', '0', '0', '0', '', '1', '0', '0', '', '', '平台赠送', '精美行李牌', '默认', '', '', '', '0', '', '2024/5/26 5:21', 'KH202405230317', '', '赠品', '', '0', '')";
$strlist = '';
for($i=1;$i<=10000;$i++){
$strlist.=$str.",";
}
$strlist = substr($strlist,0,strlen($strlist)-1);
// echo $strlist;
// exit;
$sql = "CALL InsertBatchData(
'order_table',
'订单编号, 店铺名称, 订单来源, 仓库, 原始单号, 原始子单号, 订单状态, 订单类型, 发货条件, 订单退款状态, 订单明细退款状态, 交易时间, 付款时间, 发货时间, 客户网名, 收件人, 省市县, 地址, 手机, 电话, 邮编, 物流公司, 物流单号, 买家留言, 客服备注, 打印备注, 备注, 客服标旗, 订单邮费, 其它费用, 订单总优惠, 应收金额, 货到付款金额, 预估货品成本, 预估邮资成本, 预估重量, 单品重量, 估重, 货品当前成本, 需要发票, 发票抬头, 发票内容, 业务员, 审核人, 财审人, 标记名称, 商家编码, 货品编号, 货品名称, 规格名称, 数量, 标价, 优惠, 成交价, 分摊后价格, 分摊邮费, 打折比, 分摊后总价, 佣金, 拆自组合装, 组合装编码, 赠品方式, 平台货品名称, 平台规格名称, 订单标签, 分销商名称, 分销商编号, 已付, 付款账号, 最晚发货时间, 客户编号, 分销原始单号, 分类, 批次号, 组合装数量, 有效期',
\"$strlist\")";
$res = $this->getORM()->queryAll($sql);
return $res;
}