最近在批量迁移数据写入到mysql表中的时候,出现一下报错。
1
|
SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders.
|
1
2
3
|
查看mysql官网解释: Error: 1390 SQLSTATE: HY000 (ER_PS_MANY_PARAM) Message: Prepared statement contains too many placeholders |
参考:https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
原因分析:
mysql使用PDO进行写入的时候,PDO支持最大占位符为65535。
当insert的表为6列(即6个字段),写入记录的行数为11000时,则insert的总占位符为:6x11000=66000.
66000大于mysql最大占位符为65535,故而mysql报错。
结论:写入数据为m列,n行。m*n必须小于65535。
版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任
本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1954842,如需转载请自行联系原作者