目標是一次準備並插入大量數據。 「大量數據」意味着一個查詢中超過65535個參數。PDOException:SQLSTATE [HY000]:常規錯誤:7個參數數量必須介於0和65535之間
因此,$ pdo-> execute()標題中的錯誤提高了。
我看過所有關於SO的類似錯誤,但一切都是關於其他情況。
目標是一次準備並插入大量數據。 「大量數據」意味着一個查詢中超過65535個參數。PDOException:SQLSTATE [HY000]:常規錯誤:7個參數數量必須介於0和65535之間
因此,$ pdo-> execute()標題中的錯誤提高了。
我看過所有關於SO的類似錯誤,但一切都是關於其他情況。
所以問題出在PDO上。
PDO將查詢參數的計數存儲在unsinged int中,因此它不能同時運行多個65535個參數。
要解決此限制,您需要劃分查詢。
一個解決方案(如果你正在推動一個PHP陣列與PDO數據庫)的使用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
}
我不知道對性能有什麼影響會造成這樣的查詢 –