<?php
error_reporting(E_ALL);
ini_set('memory_limit', '512M');
ini_set('display_errors', 'ON');
$host = "127.0.0.1"; // Host name
$username = "root"; // Mysql username
$password = ""; // Mysql password
$db_name = "test2"; // Database name
$tbl_name = "tcg_unique";
$con = mysql_connect("$host", "$username", "$password")or die("cannot connect");
$db_con = mysql_select_db($db_name) or die("cannot select DB");
$charset = mysql_set_charset('utf8',$con);
$dir_iterator = new RecursiveDirectoryIterator("/Users/jacksons/Dropbox/MTG/SQL staging");
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file) {
echo $file, "\n";
if(strpos($file, '.csv') !== false){
mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE $tbl_name") or die (mysql_error());
}
else{
print "else";
}
}
我想从一个目录加载多个csv文件。我正在打印所有文件路径,但无法将数据加载到表中。我在mysql中尝试了一个,然后导入就没问题了(所有列名都匹配)。任何帮助将不胜感激。
csv看起来像:卡名供应商条件价格运输数量日期Brimaz,Oreskos之王Game Citadel,靠近铸币厂18 0.5 4 5/30/14 Kiora,Crashing Wave FTW游戏,玩过13.09 NA 1 5/30/14 Kruphix Chicagoland Games的课程薄荷附近11.68 0.75 3 5/30/14
如果您的文件实际上是一个用逗号分隔字段的csv文件,则必须指定字段分隔符。
LOAD DATA INFILE '$file' INTO TABLE $tbl_name FIELDS TERMINATED BY ','
如果未声明字段分隔符,则mysql会将字段分隔符视为制表符(\ t)。
如果文件是用回车符创建的,则Windows应用程序会这样做,您还需要在语句末尾添加:
LINES TERMINATED BY '\r\n'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句