2013-08-16 3 views
0

Я искал последнюю неделю для чего-то на этом, но ничего не нашел, и я просмотрел документы, и ничего в документы также работают.MySQLi CSV Load Data Infile to MySQL (некоторые столбцы в CSV, некоторые столбцы в MySQL)

У меня есть CSV (ссылка ниже для загрузки), что мне нужно загрузить только пару столбцов в MySQL, используя MySQLi. CSV - это платформа, которую мы используем для показа объявлений, имя клиента было изменено, но данные - все истинные данные за два дня.

Вот код, у меня есть для загрузки (Есть 3 различных версий команды SQL, я попытался около 30 различных них):

<? 
(MY USER INFORMATION FOR MY MYSQL SERVER) 
$ad_results = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName); 
ignore_user_abort(true); 
set_time_limit(9999); 

$sql1 = "LOAD DATA INFILE 'CSV_FILE_FOR_STACKOVERFLOW.csv' INTO TABLE ad_info 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 
(@col1,@col2,@col6,@col12,@col13,@col14) set [email protected],[email protected],[email protected],[email protected],[email protected],[email protected]"; 

$sql2 = "LOAD XML INFILE '558385_20130815-153744.xml' INTO TABLE item ROWS IDENTIFIED BY '<row>'"; 

$sql3 = "LOAD DATA INFILE 'CSV_FILE_FOR_STACKOVERFLOW.csv' INTO TABLE ad_info 
     FIELDS TERMINATED BY ',' 
     LINES TERMINATED BY '\n' 
     IGNORE 1 LINES 
     (@client, @name) 
     set 
      client = @client, 
      impressions_delivered = @impressions_delivered, 
      company_id = '1000001'"; 
mysqli_query($ad_results, $sql3);` 
mysqli_close($ad_results) 
?> 

В базе данных MySQL устанавливаются со всеми из столбцы из CSV, на всякий случай невозможно сделать только определенные столбцы, и я готов загрузить все данные. Самое интересное, что есть 30-40 CSV-файлов, которые будут проходить через этот код каждый день в 1 утра, у меня есть код для выбора всех CSV-файлов в папке загрузки, просто нужен код для вставки их в MySQL. Благодаря! (Пожалуйста, ответьте на истинные ответы, я искал везде, и ничего не нашел, работает всегда, он всегда дает мне ошибку или просто не вставляет строки в MySQL, ближайший я получил разбор CSV и используя

mysqli_query($ad_results, "INSERT INTO ad_info (...)VALUES(...)"); 

Этот файл находится на сервере, а задание cron запускает скрипт PHP каждую ночь, он игнорирует прерывание пользователя и время работы 9999 секунд (чтобы убедиться, что он получает все данные). заранее за любую помощь

CSV файла: http://ad-results.com/CSV_FILE_FOR_STACKOVERFLOW.csv

+0

Вы действительно разместили ссылку на CSV-файл (ы)? – cars10m

+0

Только что понял, что я не связывал его. :) –

+0

Прошу прощения, но в чем именно проблема? Ошибка импорта? Неверные или отсутствующие данные вставлены? Есть ли * предупреждение * ('SHOW WARNINGS')? –

ответ

0

Я не могу найти mysqli_error($ad_results) вызов кода Вам. необходимо сохранить ответ вашего mysqli_query() в ресурсо-переменной $mysqli, а затем отобразить возможную ошибку MySQL, как:

$mysqli=mysqli_query($ad_results, $sql3); 
if (!$mysqli) echo mysqli_error($ad_results); 

Может быть, есть сообщение ждет вас в конце концов? ;-)

+0

Теперь я получаю ту же проблему, что и вы. Хорошо, ОДИН шаг поближе! Я chmodded папку до 777, никакой разницы, это ошибка входа, которую я не понимаю. –

+0

Я добрался до своего хоста, чтобы предоставить мне доступ к FILE на моем сервере MySQL. Надеюсь, он исправляет проблему! Благодаря! –