3 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
您可以直接將MYSQL鏈接到它并使用以下SQL語法上載信息,而不是編寫腳本以從CSV文件中提取信息。
要將Excel文件導入MySQL,請先將其導出為CSV文件。從生成的CSV文件中刪除CSV標題以及Excel可能放在CSV文件末尾的空數(shù)據(jù)。
然后,您可以通過運行以下命令將其導入MySQL表:
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
正如讀?。簩SV文件直接導入MySQL
編輯
對于您的情況,您需要先編寫一個解釋器,以查找第一行,并將它們指定為列名。
編輯-2
來自MySQL文檔的LOAD DATA語法:
該IGNORE number LINES選項可用于忽略文件開頭的行。例如,您可以使用IGNORE 1 LINES跳過包含列名的初始標題行:
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)

TA貢獻1854條經(jīng)驗 獲得超8個贊
這是一個簡單的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);
?>
它將基于第一行創(chuàng)建一個表,并將剩余的行導入其中。這是命令行語法:
php csv_import.php csv_file.csv table_name

TA貢獻1858條經(jīng)驗 獲得超8個贊
首先在數(shù)據(jù)庫中創(chuàng)建一個表,其中包含csv文件中相同數(shù)量的列。
然后使用以下查詢
LOAD DATA INFILE 'D:/Projects/testImport.csv' INTO TABLE cardinfo
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
添加回答
舉報