[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление строк из файла в базу данных
Страницы: 1, 2, 3
alerzo
Здравствуйте есть php скрипт, который при запуске выдирает из файла mail.html строки и переносит их в базу данных. Работает довольно медленно, за 1 раз выдирает не больше 150-200 строк..Подскажите как можно его модернизировать. В php я плохо разбираюсь. Строк в файле mail.html порядка 500тыс. находятся в формате

domen1@mail.ru parol_ot_pochty1
domen2@mail.ru parol_ot_pochty2
domen3@mail.ru parol_ot_pochty3
domen4@mail.ru parol_ot_pochty4



<?php
header("Content-Type: text/html; charset=utf-8");

//подключаем настройки
include 'config.php';


echo 'Использовано соединение с ' .$db_host.'<br>';
echo 'База данных с именем ' .$db_name.'<br>';
echo 'Пароль базы данных ' .$db_pass.'<br>';
echo 'Работаем с таблицей ' .$db_table.'<br>';


// соединяемся с БД
$db = mysql_connect($db_host, $db_name, $db_pass) or die('Не удалось соединиться: ' . mysql_error());
echo 'Соединение успешно установлено<br>';

// выбираем таблицу с которой будем работать
mysql_select_db($db_table) or die('Не удалось выбрать базу данных');

$i = 1;

do{
$f=file('mail.html'); // открываем файл
$s=$f[0]; // читаем первую строку
unset($f[0]); // удаляем 1-ю строку

preg_match("/.+(?=@)/", $s, $name); // вытаскиваем логин мыла
preg_match("/(?<=@)[a-z]+\.ru/", $s, $pref); // префикс мыла
preg_match("/(?<=\s).+/", $s, $pas); // пароль от мыла

file_put_contents('mail.html', $f); // пишем файл без первой строки
mysql_query ("INSERT INTO mail (name,pref,pas) VALUE ('$name[0]','$pref[0]', '$pas[0]')"); // записываем в базу имя мыла, префикс мыла и пароль мыла


}

while ($i++<100);
echo "Добавлено $i строк в базу";
$i =1;
?>


я пробовал увеличивать число 100 в конце цикла но это приводило либо к зависанию скрипта либо он очень медленно добавлял и смысла в увеличении нет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.