私はこれの正反対が欲しいです。
電子メールでいっぱいの.xlsファイルをデータベース列にロードしたいと思います。
これを行う最も簡単な方法は何ですか?
MySQLのLOADDATAINFILE構文を使用して、手順1で作成したCSVファイルを使用します。
LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
ファイルはMySQLインスタンスにローカルでアクセスできる必要があるため、サーバーに物理的にアクセスできない場合はファイルをアップロードする必要があります。
ポニーが言ったように、最初に「名前を付けて保存> CSV」してから、アップロードして何でもする必要があります。ただし、多くの場合、アクセス許可ではそのSQLステートメントは許可されません。私の個人的なお気に入りはcsv2sql.comを使用することです。これは、手間がかかり、SQLを実行するだけでよいためです。ただし、より安全なfgetcsvを使用して、スクリプトに実装できるものを使用することもできます。
fgetcsvを使用すると、電子メールアドレスがリストされた1列のファイルがあると仮定して次のようなことができます。
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
if ($c==0){
//This is the first column
//Just run a generic MySQL insert command here (see below for link for more info on this)
}
}
}
fclose($handle);
}
PHP MySQL Insertのチュートリアル:W3Schoolsで。それはあなたがこの努力を続けるようになるはずです。