我有一个脚本可以解析其中包含18000多行的csv文件。目前,我的代码构建了一个格式为的SQL语句:
INSERT INTO (...) VALUES (..., ..., ...)
当我输出已编译的SQL并直接在数据库中运行时,我得到以下内容:
Error in Processing Request
Error code: 500
Error text: Internal Server Error
我认为数据是有效的,因为我通过phpmyadmin直接导入只是为了测试初始文件。我还使用较小版本的最终文件对我的代码进行了较小的测试,并且运行正常。
所以我的问题是我创建了一个太长而无法运行的SQL查询,如果有的话,还有更好的方法吗?
另外,这个代码是从WordPress的后端执行的,这是文件上传功能将存在的地方。
很想得到一些反馈。
答案 0 :(得分:3)
查看MySQL的LOAD DATA INFILE语句,该语句以非常高的速度将文本文件中的行读取到表中。
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]