获取错误500或内容编码错误从CSV执行大型MySQL插入

时间:2017-08-22 19:57:45

标签: php mysql csv content-encoding

/ beginnote 这个问题被标记为重复'。它与引用的问题不同,因为在我的应用程序中我不能使用LOAD IN,因为输入文件将永远不会很好地格式化,所以我 - 请 - 逐行读取它以测试有效记录。

另外:在我的工作代码中,我已经从mysql_更改为mysqli,并且我得到了相同的症状。

另外:我的主机提供商告诉我,我收到的浏览器错误(500或内容编码错误)不会显示在服务器日志中。

我想重新打开它并学习如何解决问题。 /尾注

我尝试在Firefox和Chrome中的CSV文件中将记录插入MySQL时出错。 CSV文件有300,000行。它将是'您尝试查看的页面无法显示,因为它使用了无效或不受支持的压缩形式。'或者只是错误500。

缓冲区填满的问题是什么?我尝试使用ob_clean()和flush(),但这不起作用。想法?

server = AccumulatorServer(("localhost", 0), _UpdateRequestHandler)

1 个答案:

答案 0 :(得分:0)

在此代码中,您插入300,000行,其中包含300,000个单独的插入。每次mysql_query()创建一个从php到mysql的单独调用。

您可以使用批量插入优化它 - MySQL Reference

最后,查询将如下所示:

INSERT INTO jch_noise_detail_copy (
    monitor_id,                                                                                          
    time,
    noise_level,
    flight_id,
    aircraft_type 
) VALUES ($monitor_id_0, time_0 ...), ($monitor_id_1, time_1, ...), ..., ($monitor_id_N, time_N, ...);