У меня возникли проблемы с циклом этого скрипта через большую базу данных из 1 м + элементов. Сценарий возвращает размер изображения в байтах от его url и вставляет результат в базу данных.Ошибка php-while в большом наборе данных
Я получаю ошибку браузера Error code: ERR_EMPTY_RESPONSE
на моей пробной попытке. Это не сулит ничего хорошего. Я пытаюсь пропустить слишком много записей с циклом while? Любые методы для исправления?
<?php
error_reporting(E_ALL);
mysql_connect('xxxx', 'xxxx', 'xxxx') or die("Unable to connect to MySQL");
mysql_select_db('xxxx') or die("Could not select database");
$result = mysql_query("SELECT * FROM items");
if (mysql_num_rows($result)) {
while ($row = mysql_fetch_array($result)) {
$ch = curl_init($row['bigimg']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
$data = curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
mysql_query("UPDATE items SET imgsize = '" . $info . "' WHERE id=" . $row['id'] . " LIMIT 1");
}
}
?>
Прежде всего, функции 'mysql_ *' теперь устарели. Посмотрите на MySQLi или PDO. Во-вторых, кто захочет зациклиться на 1 м + записи и cURL запросить их все? – BenM
Почему вы не можете попробовать 'shell_exec()' для операций завивки? –
Итак, вы хотите сделать индивидуальные HTTP-запросы «1m +» в одном скрипте ...? – CBroe