<?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 игра Цитадель возле монетного двора 18 0,5 4 5/30/14 Kiora, игра с кричащей волной FTW легко играли 13.09 NA 1 5/30/14 Courser of 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).
В случае, если файл создается с помощью каретки с возвратом, это делают приложения с монстрами окон, вам также необходимо добавить в конце инструкции:
LINES TERMINATED BY '\r\n'
Если вы хотите импортировать несколько файлов csv
и вы делаете это вручную , вы также можете использовать графический инструмент, чтобы упростить работу. Вы можете использовать Adminer для этого:
Import
слева. .csv
. Execute
.