语法错误或访问冲突:将数据从 CSV 加载到 Table 时出现 1064

Syntax error or access violation: 1064 while loading data from CSV to Table

我正在尝试将数据从 CSV 文件加载到 PHPZend 中的 table。代码如下。

              $strFilePath = '"/Users/somepath/bccsv.csv"';
              $enclosed = "'\"'";
              $fieldTerminated = "','";
              $lineTerminated = "'\r\n'";
              $stmt = $this->_db->query('LOAD DATA INFILE strFilePath '. $strFilePath .' INTO TABLE partner_import_table FIELDS TERMINATED BY '. $fieldTerminated . ' ENCLOSED BY '. $enclosed . ' LINES TERMINATED BY ' . $lineTerminated . ' IGNORE 1 ROWS;');

执行时出现错误 Syntax error or access violation: 1064.

但是在 mysql

中执行
LOAD DATA INFILE "/Users/somepath/bccsv.csv"
INTO TABLE partner_import_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;

执行无误。 What is to be fixed and What is the right way to accomplish this?

与其像现在这样连接查询,不如使用参数占位符。

$this->_db->query('LOAD DATA INFILE strFilePath '. $strFilePath .' INTO TABLE partner_import_table FIELDS TERMINATED BY '. $fieldTerminated . ' ENCLOSED BY '. $enclosed . ' LINES TERMINATED BY ' . $lineTerminated . ' IGNORE 1 ROWS;');

应该是这样的:

$this->_db->query('LOAD DATA INFILE strFilePath ? INTO TABLE partner_import_table FIELDS TERMINATED BY ? ENCLOSED BY ? LINES TERMINATED BY ? IGNORE 1 ROWS;', array('/Users/somepath/bccsv.csv', ',', '"', '\r\n'));