2014-02-13 4 views
0

Добрый день всем. У меня есть эта функция:Ограничение памяти PHP PDO

public function get_subcategory_name($parent_id){ 
    if($parent_id !=0){ 
     $data = DB::getInstance()->query("SELECT *FROM `" . Config::get('mysql/tbl_categories') . "` WHERE `id` = $parent_id"); 
     foreach($data->results() as $dt){ 
      if($dt->parent_category_id == 0){ 
       $name = $dt->name; 
      }else{ 
       $name = Category::get_subcategory_name($dt->parent_category_id) . $dt->name; 
      } 
     } 
    }else{ 
     return false; 
    } 
    return $name ." <i class='fa fa-angle-double-right'></i> "; 
} 

С помощью этой функции я хочу, чтобы захватить имена подкатегорий, и у меня есть правило, когда категория не имеет родителя, он будет возвращать false, но по каким-то причинам эта функция работает и никогда не останавливается и У меня проблема с памятью. Я пробовал много способов, но я не могу найти какое-либо решение, пожалуйста, помогите мне, если сможете. Спасибо.

+0

Пожалуйста, пост определение класса 'DB'. Я подозреваю, что в функции 'results()' некорректно обрабатывается выборка строк, что приводит к бесконечному циклу. –

+0

... и разместите соответствующие части класса «Категория». –

+0

Если 'DB' представляет собой обертку с одиночной оболочкой вокруг' PDO', пожалуйста, пожалуйста, избавитесь от нее. Singeltons в PHP действительно совершенно бессмысленны. Если 'DB' каким-то образом _extends_' PDO': [вырезать его как можно скорее) (http://codereview.stackexchange.com/questions/29362/very-simple-php-pdo-class/29394#29394). О, и 'id = $ parent_id' <- может быть уязвимостью инъекции, используйте подготовленные операторы. BTW: Проблема с ограничением памяти вряд ли будет связана с PDO. '$ data-> results()', вероятно, является причиной ваших проблем, что приводит к бесконечному циклу. Опубликуйте больше кода –

ответ

0

можно выделить временно дополнительную память, используя это

ini_set('memory_limit', '750M'); 
+0

«никогда не останавливается», другими словами бесконечный цикл. вам понадобится бесконечная память, чтобы «исправить» проблему ... –

+0

Если код не работает, не увеличивайте ресурсы, которые он может потреблять, а скорее исправьте код –

+0

yes @Marc B, вы правы, я просто даю пример. Благодарю вас за это. –

 Смежные вопросы

  • Нет связанных вопросов^_^