回答(12)
2 years ago
您可以直接将MYSQL链接到它并使用以下SQL语法上载信息,而不是编写脚本以从CSV文件中提取信息 .
要将Excel文件导入MySQL,请先将其导出为CSV文件 . 从生成的CSV文件中删除CSV Headers 以及Excel可能放在CSV文件末尾的空数据 .
然后,您可以通过运行以下命令将其导入MySQL表:
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
编辑
对于您的情况,您需要先编写一个解释器,以查找第一行,并将它们指定为列名 .
编辑-2
IGNORE数字LINES选项可用于忽略文件开头的行 . 例如,您可以使用IGNORE 1 LINES跳过包含列名的初始 Headers 行:LOAD DATA INFILE'/ tmp / test.txt'INTO TABLE test IGNORE 1 LINES;
因此,您可以使用以下语句:
LOAD DATA LOCAL INFILE 'uniq.csv'
INTO TABLE tblUniq
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)
2 years ago
这是一个简单的PHP命令行脚本,可以满足您的需求:
$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'database';
$db = mysql_connect($host, $user, $pass);
mysql_query("use $database", $db);
/********************************************************************************/
// Parameters: filename.csv table_name
$argv = $_SERVER[argv];
if($argv[1]) { $file = $argv[1]; }
else {
echo "Please provide a file name\n"; exit;
}
if($argv[2]) { $table = $argv[2]; }
else {
$table = pathinfo($file);
$table = $table['filename'];
}
/*************************************