如何将CSV文件导入MySQL表?我希望将第一行数据用作列名。
我读了How do I import CSV file into a MySQL table?,但唯一的答案是使用图形用户界面而不是外壳?
发布于 2013-01-28 23:34:40
下面是一个简单的PHP命令行脚本,它将执行您所需的操作:
<?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'];
}
/********************************************************************************/
// Get the first row to create the column headings
$fp = fopen($file, 'r');
$frow = fgetcsv($fp);
foreach($frow as $column) {
if($columns) $columns .= ', ';
$columns .= "`$column` varchar(250)";
}
$create = "create table if not exists $table ($columns);";
mysql_query($create, $db);
/********************************************************************************/
// Import the data into the newly created table.
$file = $_SERVER['PWD'].'/'.$file;
$q = "load data infile '$file' into table $table fields terminated by ',' ignore 1 lines";
mysql_query($q, $db);
?>
它将基于第一行创建一个表,并将其余行导入其中。以下是命令行语法:
php csv_import.php csv_file.csv table_name
发布于 2014-06-03 00:07:26
如果您能够安装phpadmin,则可以在导入部分将csv文件导入到数据库中,甚至还会有一个复选框将标题设置为包含表列名称的文件的第一行(如果未选中此选项,则第一行将成为数据的一部分
发布于 2013-07-04 14:34:44
首先,在数据库中创建一个表,其列数与csv文件中的列数相同。
然后使用以下查询
LOAD DATA INFILE 'D:/Projects/testImport.csv' INTO TABLE cardinfo
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
https://stackoverflow.com/questions/11077801
复制相似问题