Php 数据包含分号时加载数据错误
我使用下面的sql使用mysql的“加载数据”导入数据。description字段包含分号,因此分号后面的内容不会插入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
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脚本来修复数据。可以吗?谢谢。我需要一个代码来处理所有类型的数据,因为我从不同的人那里获取数据。有图书馆处理这个吗?谢谢。我需要一个代码来处理所有类型的数据,因为我从不同的人那里获取数据。有图书馆处理这个问题吗?