我使用下面的代码将CSV文本文件导入到我的表中,但我的新主机不允许LOAD DATA
命令并强制我找到导入文件的替代方法。当然,他们没有给我一个明确的答案。
除了LOAD DATA LOCAL
和LOAD DATA
之外还有哪些方法可以通过PHP / MySQLi将CSV文件导入我的MySQL表中?
// Query - import CSV file into DB, ignore top 3 lines
$sql= "LOAD DATA LOCAL INFILE '".$import_file."' INTO TABLE `$dbtable`
FIELDS TERMINATED BY '".$fieldseparator."'
LINES TERMINATED BY '".$lineseparator."'
IGNORE 3 LINES
SET TIMESTAMP = '".$local_time."'";
由于
编辑:
在查看建议的fgetcsv
函数后,我想出了下面的代码。理论上,它应该工作,但代码似乎加载,直到它最终超时而不显示错误。数据库仅使用单行条目填充。
我在这里做错了什么?
if ($import_file) {
// set row counter to 0
$line = 0;
while ( ($row = fgetcsv($import_file)) !== false ) {
// ignore the first 3 rows of the file based on iteration of the counter
if ($line <= 3) {
$line++;
continue;
} else {
// if row count is higher than 3, insert into database
$sql = "INSERT INTO `$dbtable`
(`OPERA_CONF`, `CRS`, `HOLIDEX`, `ARRIVAL`)
VALUES (
'" . $row[0] . "',
'" . $row[1] . "',
'" . $row[2] . "',
'" . $row[3] . "'
)";
// execute query
$mysqli->query($sql);
$line++;
}
}
} else {
echo "\n CSV file could not be found.";
}
答案 0 :(得分:1)
您必须逐行使用PHP来读取CSV文件的内容并将其插入表中。
查看http://www.readmyviews.com/import-csv-data-mysql-using-php/
此处粘贴的代码易于使用:
------- explicit converter -------
{"Value":null}