mysql加载数据infile插入双引号

时间:2013-03-12 13:40:57

标签: php mysqli

嗨,我知道这个问题不仅仅是为了我的,而是为了每个使用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));

由于

1 个答案:

答案 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

希望这有帮助!