今天在開發專案時,試著一次性插入大量資料,結果出現了以下報錯:

依稀記得以前也遇到過類似的問題,于是打算記錄下錯誤原因及解決程序:
首先,這是由于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);
至此,該問題已得到解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/500661.html
標籤:MySQL
上一篇:mysql多實體部署
