@Paltinik

Как решить проблему Fatal error: Allowed memory size of при получении данных из mysql?

Вот таким кодом получаю данные из бд:
$q = "SELECT * FROM urls WHERE site_id = '1'";
$data= $mysqli->query($q)->fetch_object();

$urls = array();

while($row = $data) {
array_push($urls,$row->site_url);
}

В бд 20к+ записей, весит ~6МБ, структура вида:
CREATE TABLE IF NOT EXISTS `urls` (
  `id` int(11) NOT NULL AUTO_INCREMENT, 
  `site_id` int(11) NOT NULL, 
  `site_url` varchar(190) NOT NULL,
  `status_url` smallint NOT NULL,
  PRIMARY KEY (`id`) )
  ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@BI0R0B0T
Из кода ошибки видно, что вам не хватает памяти для работы скрипта. Память теряется на работе с массивом. Если вам данные из БД нужны только один раз то посмотрите в сторону генераторов / итераторов и обработку данных выполняйте внутри них - это позволит вам избежать хранения ненужных данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы