CSV ファイルを MySQL テーブルにインポートするにはどうすればよいですか? データの最初の行を列名として使用したいと思います。
CSV ファイルを MySQL テーブルにインポートするにはどうすればよいですか?を読みました。、しかし唯一の答えは、シェルではなくGUIを使用することでしたか?
CSV ファイルを MySQL テーブルにインポートするにはどうすればよいですか? データの最初の行を列名として使用したいと思います。
CSV ファイルを MySQL テーブルにインポートするにはどうすればよいですか?を読みました。、しかし唯一の答えは、シェルではなくGUIを使用することでしたか?
CSV ファイルから情報を取得するスクリプトを作成する代わりに、MYSQL を直接リンクし、次の SQL 構文を使用して情報をアップロードできます。
Excel ファイルを MySQL にインポートするには、まず CSV ファイルとしてエクスポートします。生成された CSV ファイルから CSV ヘッダーを削除し、Excel が CSV ファイルの末尾に配置した可能性のある空のデータも削除します。
次に、次を実行して、MySQL テーブルにインポートできます。
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
続きを読む: CSV ファイルを MySQL に直接インポートする
あなたの場合、最初の行を見つけて列名として割り当てるために、最初にインタープリターを作成する必要があります。
構文に関するLOAD DATA
MySQLドキュメントから:
この
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)
必要なことを実行する単純な 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
phpadmin をインストールできる場合は、csv ファイルをデータベースにインポートできるインポート セクションがあり、ヘッダーをファイルの最初の行に設定するチェックボックスがあり、テーブルの列名が含まれています (これがチェックされていない場合、最初の行はデータの一部になります
最初に、csv ファイルにあるのと同じ数の列を持つテーブルをデータベースに作成します。
次に、次のクエリを使用します
LOAD DATA INFILE 'D:/Projects/testImport.csv' INTO TABLE cardinfo
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
「mysql -u -p --local-infile」として mysql を起動すると、正常に動作します。