Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Испорт из CSV в Mysql ( 2 поля - URL адрес и e-mail ) 10 000 записей
 
 автор: Panker   (27.02.2015 в 00:48)   письмо автору
 
 

День добрый, очень рад вновь тут оказаться :-)

Суть проблемы - есть файл, в нем

http://АДРЕС САЙТА/;почта@почта.ru
http://АДРЕС САЙТА/;почта@почта.ru

и так 10 тысяч записей

нужно загнать все это в mysql таблицу.

Скажем база данный email_mysql в ней таблица email

как это проще всего сделать?

  Ответить  
 
 автор: confirm   (27.02.2015 в 04:19)   письмо автору
 
   для: Panker   (27.02.2015 в 00:48)
 

MySQL или PDO?

  Ответить  
 
 автор: elenaki   (27.02.2015 в 10:11)   письмо автору
 
   для: Panker   (27.02.2015 в 00:48)
 

А что сложного? Нарисовать форму загрузки текстового файла.
Разбирать файл по частям, разбивая на строки, а строки на поля.
Я такое делала много раз.

  Ответить  
 
 автор: confirm   (27.02.2015 в 10:43)   письмо автору
 
   для: elenaki   (27.02.2015 в 10:11)
 

Разбирать файл по частям, разбивая на строки, а строки на поля.

Наоборот - получать строки из CSV, формируя строку для многострочной записи, и делать один запрос.

  Ответить  
 
 автор: elenaki   (27.02.2015 в 10:50)   письмо автору
 
   для: elenaki   (27.02.2015 в 10:11)
 


$fp = fopen($filename,"r"); //открываем нужный нам файл на чтение в бинарном режиме, если это дело происходит под виндой   
$fsize = filesize($filename); //Узнаём размер исходного файла   
$cicl     = ceil($fsize/256) + 1; //узнаём кол-во циклов (важно: я остановился на 256кб, но если дело происходит на шареде, можно и поменьше)   

$grammes=0;
for($i = 0; $i < $cicl; $i ++) {  //запускаем цикл   


    if ($i == 0) {   
        fseek ( $fp, 0 ); //ну на первом цикле переходим естественно в начало файла   
    } else {   
        fseek ( $fp, ftell ( $fp ) ); //бегаем по файлу   
    }   
    $text = fread ( $fp, 256000 ); //читаем файл по 512кб   
    ///$text = syn_text ( $text ); //тут я синонимизирую текст, вы можете делать с ним что то своё   



     // делаем массив из строки данных

$file_array = explode("<br />",nl2br($text));

//начало перебора массива
$i=1;

foreach ($file_array as $line_num => $line) {

//разбиваем строку на поля и формируем запрос





дальше действия с полями - запрос, занесение в базу, что угодно (цикл не закрыт, это отрывок кода)

Это я стащила давно, не помню, откуда. Но много раз делала для себя и клиентов такие "мостики", когда
лениво было базу забивать однотипными данными. Что тут "наоборот", не вижу.

  Ответить  
 
 автор: confirm   (27.02.2015 в 12:19)   письмо автору
 
   для: elenaki   (27.02.2015 в 10:50)
 

Слишком много. fgetcsv() и паковать сразу в строку.

  Ответить  
 
 автор: Trianon   (27.02.2015 в 13:29)   письмо автору
 
   для: confirm   (27.02.2015 в 12:19)
 

и хоть бы кто-нибудь спросил, что считать первичным ключом?

facepalm.

  Ответить  
 
 автор: KPETuH   (27.02.2015 в 13:37)   письмо автору
 
   для: Trianon   (27.02.2015 в 13:29)
 

А смысл?

  Ответить  
 
 автор: Trianon   (28.02.2015 в 01:39)   письмо автору
 
   для: KPETuH   (27.02.2015 в 13:37)
 

вообще-то от этого зависит не только код, но даже сам подход к решению.
Будет ли применен
INSERT ...
REPLACE ...
INSERT INTO ... ON DUPLICATE KEY UPDEATE ...
или даже
LOAD DATA INFILE ...

  Ответить  
 
 автор: psychomc   (27.02.2015 в 14:03)   письмо автору
 
   для: elenaki   (27.02.2015 в 10:50)
 

где вы этот код откопали? :)

  Ответить  
 
 автор: elenaki   (27.02.2015 в 16:07)   письмо автору
 
   для: psychomc   (27.02.2015 в 14:03)
 

не важно. Он работает и мне не надо другого. Когда перестанет работать, найду другой.

  Ответить  
 
 автор: confirm   (27.02.2015 в 16:39)   письмо автору
 
   для: elenaki   (27.02.2015 в 16:07)
 

Деловой подход. :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования