Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 数据包含分号时加载数据错误_Php_Mysql - Fatal编程技术网

Php 数据包含分号时加载数据错误

Php 数据包含分号时加载数据错误,php,mysql,Php,Mysql,我使用下面的sql使用mysql的“加载数据”导入数据。description字段包含分号,因此分号后面的内容不会插入 LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE `mytable` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' 实际数据如下 1;2;3;D;Testdata: Testing; 100% P

我使用下面的sql使用mysql的“加载数据”导入数据。description字段包含分号,因此分号后面的内容不会插入

LOAD DATA LOCAL INFILE  '/tmp/phpz4m7Rl' INTO TABLE  `mytable` FIELDS TERMINATED BY  ';' ENCLOSED BY  '"' ESCAPED BY  '\\' LINES TERMINATED BY  '\n'
实际数据如下

1;2;3;D;Testdata: Testing; 100% Perfect
但它只是插入

1;2;3;D;Testdata: Testing;
我的桌子结构

CREATE TABLE `mytable` (
  `id` text NOT NULL,
  `category` varchar(12) NOT NULL,
  `product` varchar(12) NOT NULL,
  `language` text NOT NULL,
  `description` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我应该改变什么来获得完整的数据?

我不知道以下是否可行,但是

选项1-使用不同的分隔符

您可以将字段分隔符从分号改为波浪号(~)。那么你就有了:

数据:

命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY '~' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项2-用括号括起

或者,您可以使用语音标记将包含分号的任何数据括起来:

资料

并使用原始命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项3-退出

或者避开问题分号:

1;2;3;D;Testdata: Testing\; 100% Perfect
并使用原始命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';

祝你好运

我不知道以下是否可行,但是

选项1-使用不同的分隔符

您可以将字段分隔符从分号改为波浪号(~)。那么你就有了:

数据:

命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY '~' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项2-用括号括起

或者,您可以使用语音标记将包含分号的任何数据括起来:

资料

并使用原始命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项3-退出

或者避开问题分号:

1;2;3;D;Testdata: Testing\; 100% Perfect
并使用原始命令:

LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';

祝你好运

@Salman A我想应该没有。我相信binoy希望在描述栏中填充“Testdata:Testing;100%完美”。但是,由于该字符串包含分号分隔符,因此它会将该字符串截断为“Testdata:Testing”,恐怕您最终会得到一个需要手动编辑的文件。您也不能将其导入电子表格。如果您100%确定
语言
列不包含
我可以为您提供一个PHP脚本来修复数据。“可以吗?”萨尔曼A我想应该没有。我相信binoy希望在描述栏中填充“Testdata:Testing;100%完美”。但是,由于该字符串包含分号分隔符,因此它会将该字符串截断为“Testdata:Testing”,恐怕您最终会得到一个需要手动编辑的文件。您也不能将其导入电子表格。如果您100%确定
语言
列不包含
我可以为您提供一个PHP脚本来修复数据。可以吗?谢谢。我需要一个代码来处理所有类型的数据,因为我从不同的人那里获取数据。有图书馆处理这个吗?谢谢。我需要一个代码来处理所有类型的数据,因为我从不同的人那里获取数据。有图书馆处理这个问题吗?