在MySQL中使用加载数据本地填充的php的CSV导入问题

在MySQL中使用加载数据本地填充的php的CSV导入问题,php,mysql,csv,Php,Mysql,Csv,我在使用php导入csv的工作中遇到了一个小问题。 我目前正在研究其他人的代码 他导入了许多csv没有问题,但是当我使用相同的算法时,我遇到了一些麻烦 他正在使用这个函数: LOAD DATA LOCAL INFILE "'.$filename.'" INTO TABLE '.$tablename.' CHARACTER SET latin1 FIELDS TERMINATED by \';\' ENCLOSED BY \'"\' ESCAPED BY \'"\' LINES TERMINATE

我在使用php导入csv的工作中遇到了一个小问题。
我目前正在研究其他人的代码

他导入了许多csv没有问题,但是当我使用相同的算法时,我遇到了一些麻烦

他正在使用这个函数:

LOAD DATA LOCAL INFILE "'.$filename.'"
INTO TABLE '.$tablename.'
CHARACTER SET latin1
FIELDS TERMINATED by \';\'
ENCLOSED BY \'"\'
ESCAPED BY \'"\'
LINES TERMINATED BY \'\r\n\'
IGNORE 1 LINES'
我所遇到的问题是,导入的行为很奇怪

以下是我可以观察到的情况:

  • 它只导入第一行
  • 第一行并不总是被忽略,例如,如果csv中有它忽略的列的名称,如果我移除它,它就不会被忽略
  • 格式不是问题,我试着用一个文件粘贴信息,然后另存为
  • 数据库中的第一个字段始终为0
  • 结果因列在文件中的位置而有所不同:例如,如果有A、B、C,则其他两个字段的结果可能为空(第一个字段始终为0)。但是如果我把它放在A,C,B或者B,C,A或者其他地方,这些字段可能会被填充

谢谢你的时间,问我你是否需要关于我的代码的任何其他信息

确保您的文件具有正确的编码(utf-8?iso-8859-1?导入期间可能需要指定字符集)和正确的行尾(\r\n)。感谢您的回答!如何检查编码?行尾是在下面的代码中定义的,这还不够吗?你检查过你的MySQL有没有错误?无论您是否使用PHP,您的MySQL服务器都在执行您的查询,因此,如果发生任何奇怪的情况,它都会将其记录下来?或者我应该在哪里检查?是,phpmyadmin报告任何sql错误。关于编码:使用google;-)我个人使用Scite查看文件开头是否有UTF8 BOM