|
|
|
| День добрый, очень рад вновь тут оказаться :-)
Суть проблемы - есть файл, в нем
http://АДРЕС САЙТА/;почта@почта.ru
http://АДРЕС САЙТА/;почта@почта.ru
и так 10 тысяч записей
нужно загнать все это в mysql таблицу.
Скажем база данный email_mysql в ней таблица email
как это проще всего сделать? | |
|
|
|
|
|
|
|
для: Panker
(27.02.2015 в 00:48)
| | MySQL или PDO? | |
|
|
|
|
|
|
|
для: Panker
(27.02.2015 в 00:48)
| | А что сложного? Нарисовать форму загрузки текстового файла.
Разбирать файл по частям, разбивая на строки, а строки на поля.
Я такое делала много раз. | |
|
|
|
|
|
|
|
для: elenaki
(27.02.2015 в 10:11)
| | Разбирать файл по частям, разбивая на строки, а строки на поля.
Наоборот - получать строки из CSV, формируя строку для многострочной записи, и делать один запрос. | |
|
|
|
|
|
|
|
для: 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) {
//разбиваем строку на поля и формируем запрос
|
дальше действия с полями - запрос, занесение в базу, что угодно (цикл не закрыт, это отрывок кода)
Это я стащила давно, не помню, откуда. Но много раз делала для себя и клиентов такие "мостики", когда
лениво было базу забивать однотипными данными. Что тут "наоборот", не вижу. | |
|
|
|
|
|
|
|
для: elenaki
(27.02.2015 в 10:50)
| | Слишком много. fgetcsv() и паковать сразу в строку. | |
|
|
|
|
|
|
|
для: confirm
(27.02.2015 в 12:19)
| | и хоть бы кто-нибудь спросил, что считать первичным ключом?
facepalm. | |
|
|
|
|
|
|
|
для: Trianon
(27.02.2015 в 13:29)
| | А смысл? | |
|
|
|
|
|
|
|
для: KPETuH
(27.02.2015 в 13:37)
| | вообще-то от этого зависит не только код, но даже сам подход к решению.
Будет ли применен
INSERT ...
REPLACE ...
INSERT INTO ... ON DUPLICATE KEY UPDEATE ...
или даже
LOAD DATA INFILE ... | |
|
|
|
|
|
|
|
для: elenaki
(27.02.2015 в 10:50)
| | где вы этот код откопали? :) | |
|
|
|
|
|
|
|
для: psychomc
(27.02.2015 в 14:03)
| | не важно. Он работает и мне не надо другого. Когда перестанет работать, найду другой. | |
|
|
|
|
|
|
|
для: elenaki
(27.02.2015 в 16:07)
| | Деловой подход. :) | |
|
|
|