Когда закрывать подготовленные операторы

Когда закрывать подготовленные операторы в PHP?

Пример:

    $query = "insert into web_reviews (title,added_date,reviewer_home_url,read_more_link,summary) values(?,?,?,?,?)";
    $stmt = $this->db->prepare($query);
    $stmt->bind_params($this->title,$this->added_date,$this->reviewer_home_url,$this->read_more,$this->summary);
    $stmt->execute() or die("Cannot add the date to the database, please try again.");
    $stmt->close();

    $stmt = $this->db->prepare("select id from web_reviews where title = ? and read_more = ?");
    $stmt->bind_params($this->title,$this->read_more);
    $stmt->execute();
    $stmt->bind_results($web_review_id);
    $stmt->close();

Следует ли мне использовать здесь $ stmt-> close (); ?

Изменить:

Что написано в Руководстве по PHP, а также в одном комментарии из руководства говорится:

Закрывает подготовленный оператор. mysqli_stmt_close () также освобождает дескриптор оператора. Если нынешний выписка ожидает рассмотрения или непрочитана результаты, эта функция отменяет их, поэтому что следующий запрос может быть выполнен.

Комментарий:

если вы повторяете оператор в цикл с использованием bind_param и т. д. внутри для более крупной операции. я Думаю, было бы хорошо его почистить с stmt-> close. но он всегда ломался с ошибкой после прибл. 250 операции. Как я пробовал с stmt-> reset у меня сработало.

21
задан Tarik 8 July 2011 в 23:09
поделиться