можно вместо запроса записать результат в файл. А потом "скормить" его Mysql через импорт.
Это по моему проще, чем бить массив на N частей.
вместо
mysql_query ($sql) or die(mysql_error() );
написать
file_put_contents('sql.txt', $sql);
вот как-то так
header("Content-Type: text/html; charset=utf-8");
include 'config.php';
Error_Reporting(E_ALL & ~E_NOTICE);
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('Не удалось выбрать базу данных');
$lines = file('mail.html');
$add = array();
foreach ($lines as $line) {
$temp_line = explode(' ', trim($line));
$temp_mail = explode('@', $temp_line[0]);
$temp_pref_pas = explode('.', $temp_mail[1]);
$add[] = "('$temp_mail[0]','$temp_pref_pas[0]', '$temp_line[1]')";
}
echo 'Массив имеет '.count($add).' ед.';
$sql = "INSERT INTO mail (name,pref,pas) VALUE ".implode(',',$add);
file_put_contents('sql.txt', $sql);