2016-02-22 3 views
0

Я пытаюсь использовать этот код, чтобы импортировать csv файл в моей базе данных MySQL:Ошибка Импорт CSV в MySQL с PHP

... Спасибо за этот вопрос решается !! ....

Что я делаю неправильно?


Ребята, я мог бы решить эту проблему, но теперь ... У меня есть другая проблема, это код прямо сейчас:

<?php 
$databasehost = "localhost"; 
$databasename = "cauctti"; 
$databasetable = "sample"; 
$databaseusername="root"; 
$databasepassword = "toor"; 
$fieldseparator = ";"; 
$lineseparator = "\r|n"; 
$csvfile = "Reporting.csv"; 

if(!file_exists($csvfile)) { 
    die("File not found. Make sure you specified the correct path."); 
} 

try { 
    $pdo = new PDO("mysql:host=$databasehost;dbname=$databasename", 
     $databaseusername, $databasepassword, 
     array(
      PDO::MYSQL_ATTR_LOCAL_INFILE => true, 
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
      PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" 
     ) 
    ); 
} catch (PDOException $e) { 
    die("database connection failed: ".$e->getMessage()); 
} 

$affectedRows = $pdo->exec(" 
     LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable` 
     FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)." 
     LINES TERMINATED BY ".$pdo->quote($lineseparator)); 

echo "Loaded a total of $affectedRows records from this csv file.\n"; 

?> 

Когда я пытаюсь запустить его, только вставить одну строку на столе ...

Загружено в общей сложности 1 записи из этого файла csv.

Почему это получает только одну строку, когда мой файл CSV прониклись 5000 записей ...

+1

Получил ответ там, я думаю: http://stackoverflow.com/questions/26256421/sql-load -data-infile-utf8-issue – RR404

+0

Вы должны добавить CHARACTER SET UTF8; по вашему запросу. – Matheno

+0

Matheno Где именно мне нужно его добавить? –

ответ

0

Как выяснили here

Вы должны установить CHARACTER SET UTF8 в запросе.

Пример:

0

Посмотрите здесь ->Here

<?php 
$table = "tableName"; 
$fileName = "States.csv"; 
$ignoreFirstRow = 1; 
if (($handle = fopen($fileName, "r")) !== FALSE){ 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
{ 
if($ignoreFirstRow != 1){ 
$sql = "insert into ".$table." values("; 
$sql .= '"'.implode('","',$data).'"'; 
echo "".$sql.');'; 
$sql = ""; 
} 
$ignoreFirstRow++; 
} 
fclose($handle); 
} 
?> 
Смежные вопросы