嗨,我知道这个问题不仅仅是为了我的,而是为了每个使用mysql LOAD DATA INFILE的人。
我只是想知道为什么每次使用load data infile导入数据时都会收到这个(“”)双引号?来自csv的数据已成功添加到数据库中,但实际上该值中有双引号。例如。
“value1”| “value2”| “值3”
有任何帮助吗?这是我的mysql脚本。
echo $mysql = "LOAD DATA LOCAL INFILE '".$path ."'
REPLACE INTO TABLE table
FIELDS
TERMINATED BY ','
LINES
TERMINATED BY '\\n'
IGNORE 1 LINES
(`column1`, `column2`, `column3`, `column4`..)";
$query = mysqli_query($link, $mysql) or die(mysqli_error($link));
由于
答案 0 :(得分:4)
我猜你的问题是,你的信息价值就像这样,
"column1","column2","column3","column4"
"column1a","column2a","column3a","column4a"
因为在你的mysql语句中,你只是声明字段被,
终止,它会读取一个值,直到mysql引擎找到,
,因此qoutes。
声明字段是否被某些东西包围的mysql语法与下面完全相同;
FIELDS ENCLOSED BY '"'
您的新查询看起来像
"LOAD DATA LOCAL INFILE '".$path ."'
REPLACE INTO TABLE table
FIELDS
TERMINATED BY ',',
ENCLOSED BY '"'
LINES
TERMINATED BY '\\n'
IGNORE 1 LINES
(`column1`, `column2`, `column3`, `column4`..)"
这告诉mysql引擎在"
之间查找字符并将该值作为字段值。
您可以在mysql网站上阅读更多相关信息。
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
希望这有帮助!