SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.04.2015 13:59:59

oneboy
Участник
Зарегистрирован: 12.04.2015
Сообщений: 2

mysqli

$dbCategory = $mysqli->query( "SELECT id FROM tasks_category WHERE id = '" . ( int )$_POST['category'] . "' LIMIT 1" );
    if ( $dbCategory->num_rows == 0 ) {
        $data = array(
            'status' => 'error',
            'text'   => response_text( 'Выбранная Вами категория не существует!' )
        );
        print json_encode( $data );
        exit();
    }
   
    $dbCategory->free();

Объяните пожалуйста, как правильно нужно очищать память, если у меня пере этим идет exit();, получается что запрос был но не очистился, а если условие правильное то идет очистка. Получается что мне нужно в 2 местах очищать память?

еще... можно вот так делать?

$dbCategory = $mysqli->query( "SELECT id FROM tasks_category WHERE id = '" . ( int )$_POST['category'] . "' LIMIT 1" );
if ( $dbCategory->num_rows > 0 ) {
$rowDbCategory = $dbCategory->fetch_assoc();
$dbCategory->free();
}

Отредактированно oneboy (12.04.2015 15:25:46)

Неактивен

 

#2 12.04.2015 17:10:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysqli

Да, нужно очищать в двух местах. Если это exit(), то при завершении скрипта память очистится автоматически, однако не стоит на это опираться. Правильный код должен работать независимо от действий окружения. Для экономии вызовов PHP система может откладывать автоочистку памяти.

Неактивен

 

#3 12.04.2015 17:36:02

oneboy
Участник
Зарегистрирован: 12.04.2015
Сообщений: 2

Re: mysqli

Спасибо большое за ответ, еще маленький такой вопрос по поводу insert update
вот например

$mysqli->query("UPDATE и так далее");

я вот видел что делаю вот так

$db = $mysqli->query("UPDATE и так далее");
$db->free();

как я понял, что при любых действиях с базой данных нужно отчищать запросы? или только в случае с INSERT

Неактивен

 

#4 13.04.2015 00:39:52

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysqli

Результат INSERT,UPDATE и DELETE - просто True или False. Можно не вызывать функцию очистки памяти в этом случае.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson