0
我有幾個自定義腳本運行在我的服務器上從模板中提取CSV文件。這些文件有時候是250,000多行。當我到達這一點時,我得到這個錯誤。大cvs文件上的fgets錯誤
警告:發送QUERY數據包時發生錯誤。 PID = 24022
這與鏈接到mysql查詢的數據包大小不夠大。
我增加了下面的mysql查詢大小,它似乎改善它,但不是所有的方式。
SHOW VARIABLES LIKE 'max_allowed_packet';
set global max_allowed_packet=1073741824;
set global net_buffer_length=1048576;
我使用的是專用的服務器,擁有大量的資源,所以我可能會增加這一點,但我不能確定有多少是安全+真的不知道這是否是處理這種情況
下面是最好的方法我使用(我已刪除了很多,這只是混亂的代碼)
$br = ']'; //this changes
$handle = fopen($path."".$inputFileName, "r");
while (($data = fgetcsv($handle, 0, "".$br."")) !== FALSE)
{
....... my code .... based on $data["...
你在循環內部究竟做了什麼?因爲fgetcsv()不是什麼導致與該錯誤消息的問題....你是否試圖建立一個巨大的查詢做所有CSV數據的單個數據庫請求? –
其實,我已取消註釋循環內的所有內容,並且仍然收到問題 –
聽起來像循環內部的變量之一未針對每個循環進行初始化。你能發佈整個代碼嗎? –