正在将CSV文件加载到MYSQL数据库,而不是导入行


Loading CSV file into MYSQL database not importing rows

我有以下功能:

    function bulk_insert_file($filename) {
        $file_location = 'assets/temp/'.$filename;
        $sql = 'LOAD DATA LOCAL INFILE '."'$file_location'".' INTO TABLE p4p.users_csv_import
            FIELDS TERMINATED BY '',''
            LINES TERMINATED BY ''''r''n''
            IGNORE 1 LINES';
        $this->db->query($sql);
    }

以及以下CSV文件:

,2,unique_id,first_name,last_name,email,company,nonprofit,username,password,dimension_data,raw_csv_data,
,2,unique_id,first_name,last_name,email,company,nonprofit,username,password,dimension_data,raw_csv_data,
,2,unique_id,first_name,last_name,email,company,nonprofit,username,password,dimension_data,raw_csv_data,

但是,当我运行代码时,不会导入任何数据。如果我删除IGNORE 1 LINES部分,我至少会导入第一行。

CREATE TABLE `users_csv_import` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) NOT NULL DEFAULT '1',
  `unique_id` varchar(255) DEFAULT '',
  `first_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `last_name` varchar(50) CHARACTER SET latin1 NOT NULL,
  `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `company` int(11) NOT NULL DEFAULT '0',
  `nonprofit` int(11) NOT NULL,
  `username` varchar(100) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `password` varchar(34) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `dimension_data` text,
  `raw_csv_data` text,
  PRIMARY KEY (`id`)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

这是桌子上的规格。。

我假设csv文件是unix行终止符格式的。因此,您应该尝试使用LINES TERMINATED BY ''''n''进行导入。