解决数据库报错Error 1390: Prepared statement contains too many placeholders的问题

今天在开发项目时,试着一次性插入大量数据,结果出现了以下报错:

解决数据库报错Error 1390: Prepared statement contains too many placeholders的问题

依稀记得以前也遇到过类似的问题,于是打算记录下错误原因及解决过程:

首先,这是由于sql语句中占位符数量限制导致的

Mysql默认支持的占位符最多为65535(2^16-1)个,即: 写入数据为m列,n行。m*n必须小于65535

比如你要插入的字段有10列,一次性要插入10000条数据,则10*10000 = 100000,明显超过了65535,就会报错

解决方法:

我们只需要对数据进行切割插入即可,使用 array_chunk方法

例如我刚开始是直接将$res一次性插入导致报错:

然后我现在使用array_chunk方法进行切割循环插入,一次最多插入10000条

(因为我只需要插入4个字段,故采用10000条插入,若字段较多则一次性插入的数据需酌情减少)

修改完成后变为:

$chunkRes = array_chunk($res,10000);

至此,该问题已得到解决

Original: https://www.cnblogs.com/luluBear/p/16534683.html
Author: 杏寿郎
Title: 解决数据库报错Error 1390: Prepared statement contains too many placeholders的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612721/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 当mysql表从压缩表变成普通表会发生什么

    本文章做了把mysql表从压缩表过渡到普通表的实验过程,看看压缩表变成普通表会发生什么?本文针对mysql5.7和mysql8分别进行了实验。 1、什么是表压缩 在介绍压缩表变成普…

    数据库 2023年6月16日
    077
  • 2022-08-20 数据库连接池

    每次去初始化一个连接池,连接池中会有很多个连接等待被使用,使用完连接之后,不需要关闭连接,只需要把连接还回到连接池,还回到连接池的操作不需要我们手动控制。 数据库连接池负责分配、管…

    数据库 2023年6月14日
    097
  • 索引的树结构

    二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,…

    数据库 2023年5月24日
    069
  • haproxy

    haproxy 一.haproxy简介 二.负载均衡 三.haproxy安装 1.yum安装 2.源码安装 2.1 配置文件解析 2.2时间格式 2.3 全局global 2.4 …

    数据库 2023年6月14日
    074
  • 不可不知的 MySQL 升级利器及 5.7 升级到 8.0 的注意事项

    数据库升级是一项苦乐参半的工程。好消息是,通过升级,你可以享受到新版本带来的新功能和性能提升。令人担忧的是,新版本可能与旧版本不兼容,这主要体现在以下三个方面: [En] Data…

    数据库 2023年5月24日
    077
  • Centos7下Oracle启动命令

    1、查询挂载历史记录 在root账户下使用一下命令 查看历史使用挂载的那个磁盘 查看挂载&a…

    数据库 2023年6月16日
    090
  • Golang异常处理

    从error的定义说起 type error interface { Error() string } Go 的error类型是一个接口。在Go中,只要实现了接口约定的方法,就等同…

    数据库 2023年6月16日
    090
  • 彻底解决SLF4J的日志冲突的问题

    今天公司同事上线时发现,有的机器打印了日志,而有的机器则一条日志也没有打。以往都是没有问题的。 因此猜测是这次开发间接引入新的日志jar包,日志冲突导致未打印。 排查代码发现,系统…

    数据库 2023年6月6日
    0225
  • windows bat

    windows bat windows bat netsh2-ipv4 新建文件夹 Windows 10 右下角时间显示时分秒 windows route 检测到以管理员权限运行 …

    数据库 2023年6月9日
    0105
  • MySQL中实现中文转拼音

    — 插入数据 INSERT INTO t_base_pinyin ( pin_yin_, code_ ) VALUES ( "a", 20319 ),( &q…

    数据库 2023年6月14日
    0103
  • servlet映射路径匹配解析

    开头 servlet是javaweb用来处理请求和响应的重要对象,本文将从源码的角度分析tomcat内部是如何根据请求路径匹配得到处理请求的servlet的 假设有一个reques…

    数据库 2023年6月16日
    0105
  • Tomcat总体架构(一)

    目录 一、Server 二、Connector 和 Container(实际为Engine) 三、Context 四、Host 五、Wrapper 六、Container(真正的C…

    数据库 2023年6月11日
    094
  • 响应式编程-入门介绍

    概念 与传统编程模型对比 传统编程模型,主要特点是 同步阻塞式-Blocking; 而响应式编程(Reactive Programming) 主要特点是 异步非阻塞 Non-Blo…

    数据库 2023年6月11日
    0113
  • synchronized 是可重入锁吗?为什么?

    什么是可重入锁? 若一个程序或子程序可以”在任意时刻被中断然后操作系统调度执行另外一段代码,这段代码又调用了该子程序不会出错”,则称其为可重入(reentr…

    数据库 2023年6月16日
    095
  • 容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据

    社区于上个月发布了 RadonDB MySQL Kubernetes v2.2.0,集群数据备份恢复的存储类型除了 S3,新增 NFS 存储。本文将为您演示如何进行 NFS 备份及…

    数据库 2023年5月24日
    0154
  • idea在git中拉去eclipse项目及配置环境

    1、VCS—git from version Control url:git@10.11.xx.xx:xpress 项目源码存储位置随意 clone 2、引入jar包 …

    数据库 2023年6月9日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球