大 cvs 文件上的 fgets 错误

fgets error on big cvs files

我的服务器上有几个自定义脚本 运行 可以从模板中提取 CSV 文件。这些文件有时有 250,000 多行。当我到达这一点时,我得到了这个错误。

Warning: Error while sending QUERY packet. 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["...

这个问题是我的脚本(很多)花了很长时间 运行。基本上我只是重新连接到 Mysql。所有评论在这里都有帮助