PDOException: SQLSTATE[HY000]: 一般错误: 7 个参数必须在 0 到 65535 之间

Fun*_*aft 4 php pdo

目的是一次准备和插入大量数据。“大量数据”意味着在一个查询中超过 65535 个参数。

所以在 $pdo->execute() 上,标题的错误上升了。

我在 SO 上阅读了所有关于类似错误的信息,但一切都与其他情况有关。

Ben*_*son 9

一种解决方案(如果您使用 PDO 将 PHP 数组推送到数据库中)是将array_chunk数组拆分为小于 int 限制的块,例如:

$chunked_new_record_array = array_chunk($new_record_array,65000,true);

foreach ($chunked_new_record_array as $new_record_chunk)
{
//do PDO insertion
}
Run Code Online (Sandbox Code Playgroud)

  • 使用超过 65K 参数进行查询我认为您不应该担心性能;) (2认同)

Fun*_*aft 8

所以问题出在 PDO 上。

PDO 将查询参数的数量存储在 unsigned int 中,因此它一次不能操作超过 65535 个参数。

要解决此限制,您需要拆分查询。