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

今天,当您开发一个项目时,您试图一次插入大量数据,但出现了以下错误:

[En]

Today, when you were developing a project, you tried to insert a large amount of data at once, and the following error occurred:

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

我依稀记得我以前遇到过类似的问题,所以我打算记录错误的原因和解决的过程:

[En]

I vaguely remember that I have encountered similar problems before, so I intend to record the cause of the error and the process of resolution:

首先,这是由于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/505121/

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

(0)

大家都在看

  • 自然语言处理NLP与深度学习(学习笔记)

    自然语言处理NLP与深度学习(学习笔记) 字母转有声调的字母 Jieba词性标注集 a 形容词 ad 副形词 an 名形词 ag 形容词性语素 al 形容词性惯用语 区别词(1个一…

    数据库 2023年6月15日
    0110
  • Gorm 的黑魔法

    开发过程中,看到同事的代码写了这么一段: db = db.Session(&gorm.Session{Context: db.Statement.Context}).Fir…

    数据库 2023年6月9日
    0146
  • JVM-方法区

    方法区 JAVA技术交流群:737698533 方法区是运行时数据区的最后一个内容,Method Area 栈,堆,方法区中的交互关系 方法区简述 方法区(Method Area)…

    数据库 2023年6月16日
    0145
  • list对象中的数据如何去重呢?

    下文笔者讲述list对象的去重方法分享,list的实现类是我们存储数据的容器, 当里面存储的对象存在重复值时,我们该如何对其进行去重操作呢? 下文笔者将一一道来,首先我们需了解对象…

    数据库 2023年6月11日
    0152
  • 报错One record is expected, but the query result is multiple records

    总结:出现这种情况,显而易见,就是查询的数据在数据库中不止一条,而我调用的selectOne方法,返回值是一个User对象,导致报错 点击查看错误代码 LambdaQueryWra…

    数据库 2023年6月11日
    0991
  • css height属性中的calc方法

    例如父盒子是100%的高度 盒子里面的head部分固定位140px 内容部分始终为剩余的全部高度 height: calc(100% – 140px); “…

    数据库 2023年6月16日
    0181
  • Java面试题(五)–Rabbits

    1、什么是MyBatis? 1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建…

    数据库 2023年6月16日
    0139
  • 数据库原理四—MySQL日志

    重做日志redo log redo log是重做日志,为InnoDB存储引擎独有。它记录了数据页上的改动。当事务中修改了数据,将会备份存储。当发生数据库服务器宕机或者脏页未写入磁盘…

    数据库 2023年5月24日
    0155
  • MySQL特性:ICP,Index Condition Pushdown

    ICP,Index Condition Pushdown 理解ICP特性前,先去前面理解MRR特性,了解where条件中的三阶段提取: index key、index filter…

    数据库 2023年6月16日
    0122
  • Javascript中“==”与“===”的区别

    在Javascript中有”==”和”===”两种比较运行符,那么他们有什么区别呢? 一、对于string,number等基础类型,…

    数据库 2023年6月9日
    0140
  • MyBatis(二)-CURD (ResultMap 一对一,一对多)

    1、insert 标签 1.1 获取SqlSessionFactory 对象的通用方法 方便后面分测试; //获取SqlSessionFactory 对象的通用方法 public …

    数据库 2023年6月16日
    0161
  • MySQL 数据表操作

    MySQL 数据表操作 数据表操作 每个数据表相当于一个文件,文件分为表结构和表记录。 [En] Each data table is equivalent to a file, …

    数据库 2023年5月24日
    0156
  • 巧用自定义注解,一行代码搞定审计日志

    任何一个软件系统,都不可避免的会碰到【 信息安全】这个词,尤其是对于刚入行的新手,比如我,我刚入行的时候,领导让我做一个数据报表导出功能,我就按照他的意思去做,至于谁有权限操作导出…

    数据库 2023年6月14日
    0123
  • Linux_文件传输工具_FileZilla

    FileZilla功能介绍: Filezilla是如此容易的下载和启动,你可能不会意识到它是多么强大。只需输入几个基本的服务器设置,您就可以点击一下启动并运行。要上传和下载文件,只…

    数据库 2023年6月11日
    0356
  • 今日🎸吉他练到这儿

    本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16750421.html Or…

    数据库 2023年6月11日
    0137
  • MySQL函数学习(二)—–数值型函数

    注:笔记旨在记录 二、MySQL 数值型函数 \ 函 数 名 称 作 用 完 成 1 RAND 取随机数,可设置参数种子 勾 2 ABS 求x的绝对值 勾 3 SIGN 求x的正负…

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