<?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看起来像: cardname供应商条件价格发货数量日期 Brimaz,Oreskos游戏城堡之王Mint 18 0.5 4 5/30/14 奇奥拉,Crashing Wave FTW游戏轻微播放13.09 NA 1 5/30/14 Kruphix芝加哥游戏的Courser在薄荷附近11.68 0.75 3 5/30/14
答案 0 :(得分:1)
如果您的文件实际上是包含以逗号分隔的字段的csv文件,则必须指定字段分隔符。
LOAD DATA INFILE '$file' INTO TABLE $tbl_name FIELDS TERMINATED BY ','
如果未说明字段分隔符,则mysql将字段分隔符视为制表符(\ t)。
如果使用return carriage创建文件,monstly windows应用程序会这样做,你还需要在语句的末尾添加:
LINES TERMINATED BY '\r\n'
答案 1 :(得分:1)
如果您要导入多个csv
个文件并且您手动手动,您可能还需要使用图形工具来简化工作。您可以使用Adminer:
Import
选项。.csv
文件。Execute
按钮。