Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL加载数据填充字段不匹配_Php_Mysql_Csv - Fatal编程技术网

Php MySQL加载数据填充字段不匹配

Php MySQL加载数据填充字段不匹配,php,mysql,csv,Php,Mysql,Csv,我正在做一个新的项目,一个PHP的web应用程序,它需要用户输入一个潜在的大数据集。我的解决方案是让用户上传一个csv文件,然后使用LOAD DATA infle命令将其添加到我的mysql数据库中 我的测试csv: NUMBER,ADDRESS,COMMENT,SCOUTMASTER_NAME,SCOUTMASTER_EMAIL,COMMITTEE_NAME,COMMITTEE_EMAIL,DISTRICT 4,404 test st.,so cool,bob jones,bob@jones.

我正在做一个新的项目,一个PHP的web应用程序,它需要用户输入一个潜在的大数据集。我的解决方案是让用户上传一个csv文件,然后使用
LOAD DATA infle
命令将其添加到我的mysql数据库中

我的测试csv:

NUMBER,ADDRESS,COMMENT,SCOUTMASTER_NAME,SCOUTMASTER_EMAIL,COMMITTEE_NAME,COMMITTEE_EMAIL,DISTRICT
4,404 test st.,so cool,bob jones,bob@jones.com,tim hanson,tim@hanson.net,western trails
5,404 test st.,so cool,bob jones,bob@jones.com,tim hanson,tim@hanson.net,western trails
6,404 test st.,so cool,bob jones,bob@jones.com,tim hanson,tim@hanson.net,western trails
7,404 test st.,so cool,bob jones,bob@jones.com,tim hanson,tim@hanson.net,western trails
部队
表上的
描述
命令的结果:

+---------------------+---------------+------+-----+---------+-------+
| Field               | Type          | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+-------+
| NUMBER              | int(11)       | NO   | PRI | 0       |       |
| ADDRESS             | varchar(255)  | YES  |     | NULL    |       |
| COMMENT             | varchar(2048) | YES  |     | NULL    |       |
| SCOUTMASTER_NAME    | varchar(255)  | YES  |     | NULL    |       |
| SCOUTMASTER_EMAIL   | varchar(255)  | YES  |     | NULL    |       |
| COMMITTEE_NAME      | varchar(255)  | YES  |     | NULL    |       |
| COMMITTEE_EMAIL     | varchar(255)  | YES  |     | NULL    |       |
| PRIMARY_ELENGOMAT   | int(11)       | YES  |     | NULL    |       |
| SECONDARY_ELENGOMAT | int(255)      | YES  |     | NULL    |       |
| DISTRICT            | varchar(255)  | YES  |     | NULL    |       |
| ELECTION_DATE       | date          | YES  |     | NULL    |       |
| MEMBERS             | int(11)       | YES  |     | NULL    |       |
+---------------------+---------------+------+-----+---------+-------+
相关PHP:

$query = "LOAD DATA LOCAL INFILE '$uploadedFile' 
          INTO TABLE TROOPS 
          FIELDS TERMINATED BY ',' 
          OPTIONALLY ENCLOSED BY '\"' 
          LINES TERMINATED BY '\r\n' 
          IGNORE 1 LINES  
          (NUMBER,ADDRESS,COMMENT,SCOUTMASTER_NAME,
           SCOUTMASTER_EMAIL,COMMITTEE_NAME,COMMITTEE_EMAIL,DISTRICT) ";

$result = $db->query($query);
SELECT
命令的输出(注意:这正是控制台输出,带有奇怪的空格):

错误和警告表均为空

我的问题是,“为了正确导入这些数据,我需要调整什么?”


很明显,这里发生了一些奇怪的事情,特别是非可调主键的数字“NULL”,以及在三的输入中,测试字符串“如此酷”是如何被截断的。我猜它是有行中断的东西,我已经尝试了\n,\r,\r\n,\n\r,用于< <代码>参数> ./p>终止的行。可能您的某些行以
\r
结尾,而不是
\r\n
?实际上,有些行可能以
\r\n
结尾。因此,
DISTRICT
被设置为
western trails\r
。好主意,关于如何检查文件中的转义字符,有什么提示吗?这个csv文件的原始来源是什么?我可以确认您的查询没有问题。我刚刚复制了一个具有精确数据类型的MySQL表,并在发布的csv上运行了精确的
LOAD data infle
。数据渲染良好,没有奇怪的空值和空格。考虑使用PHP读取CSV并替换这些分隔符。
+--------+--------------+---------+------------------+-------------------+----------------+-----------------+-------------------+---------------------+-----------------+---------------+---------+
| NUMBER | ADDRESS      | COMMENT | SCOUTMASTER_NAME | SCOUTMASTER_EMAIL | COMMITTEE_NAME | COMMITTEE_EMAIL | PRIMARY_ELENGOMAT | SECONDARY_ELENGOMAT | DISTRICT        | ELECTION_DATE | MEMBERS |
+--------+--------------+---------+------------------+-------------------+----------------+-----------------+-------------------+---------------------+-----------------+---------------+---------+
|      0 | 404 test st. | so cool | bob jones        | bob@jones.com     | tim hanson     | tim@hanson.net  |              NULL |                NULL | western trails  | NULL          |    NULL |
 | NULL          |    NULL | cool | bob jones        | bob@jones.com     | tim hanson     | tim@hanson.net  |              NULL |                NULL | western trails
 | NULL          |    NULL | cool | bob jones        | bob@jones.com     | tim hanson     | tim@hanson.net  |              NULL |                NULL | western trails
 | NULL          |    NULL | cool | bob jones        | bob@jones.com     | tim hanson     | tim@hanson.net  |              NULL |                NULL | western trails
|      7 | 404 test st. | so cool | bob jones        | bob@jones.com     | tim hanson     | tim@hanson.net  |              NULL |                NULL | western trails  | NULL          |    NULL |
+--------+--------------+---------+------------------+-------------------+----------------+-----------------+-------------------+---------------------+-----------------+---------------+---------+