Добрый день всем. У меня есть эта функция:Ограничение памяти 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
, но по каким-то причинам эта функция работает и никогда не останавливается и У меня проблема с памятью. Я пробовал много способов, но я не могу найти какое-либо решение, пожалуйста, помогите мне, если сможете. Спасибо.
Пожалуйста, пост определение класса 'DB'. Я подозреваю, что в функции 'results()' некорректно обрабатывается выборка строк, что приводит к бесконечному циклу. –
... и разместите соответствующие части класса «Категория». –
Если '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()', вероятно, является причиной ваших проблем, что приводит к бесконечному циклу. Опубликуйте больше кода –