Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: удалять объект и запись в базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
DlTA
Отправлено: 24 Ноября, 2016 - 12:26:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




у меня классы селекторы

PHP:
скопировать код в буфер обмена
  1. class ClassElement($id);
  2.  
  3. $itemObj = new ClassElement(1); // создаем объект привязанный к базе
  4. $itemObj->getColum(); //  получаем данные из базы


и вот возник вопрос удаление записи из базы

нужно удалить объект unset($itemObj), но и саму запись из базы
и желательно что это понятно и правильно.

есть идеи??
 
 Top
Строитель
Отправлено: 24 Ноября, 2016 - 13:00:28
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




DlTA пишет:
есть идеи?
Дописать в класс метод __destruct(), в котором и выполнять удаление записи из базы, при вызове unset($itemObj).
 
 Top
DlTA
Отправлено: 24 Ноября, 2016 - 13:02:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Строитель пишет:
Дописать в класс метод __destruct(), в котором и выполнять удаление записи из базы, при вызове unset($itemObj).

__destruct() будет вызываться каждый раз при закрывании приложения, мне так не надо.
(Добавление)
сейчас создал статический метод для удаление объекта и записи в базе
типа
PHP:
скопировать код в буфер обмена
  1. /**
  2. * удаляет запись из базы и объект
  3. */
  4. static public function deletItem(CModelDB $item){
  5.  
  6.         CDB::query("DELETE FROM `{$item->tableName}`  WHERE `id` = '{$item->getId()}'");
  7.  
  8.         $item->data = array();
  9.         $item->id = null;
  10.         //$this->repo = null;
  11.  
  12.         unset($item);
  13. }


но из за того что деструктор вызывается неизвестно когда, пришлось попутно закрыть все данные в классе: "$item->data = array(); $item->id = null;"
 
 Top
Строитель
Отправлено: 24 Ноября, 2016 - 13:15:36
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




DlTA пишет:
__destruct() будет вызываться каждый раз при закрывании приложения, мне так не надо.
У меня не много опыта в ооп, поэтому мне приходит только такая мысль (пример) :
PHP:
скопировать код в буфер обмена
  1. // После удаления объекта
  2. unset($itemObj);
  3. // проверить его существование
  4. if (!is_object($itemObj)) {
  5.     // и выполнить удаление записи
  6.     delRec();
  7. }
  8.  
  9. function delRec() {
  10.     echo 'удаление записи из базы';
  11. }

(Добавление)
DlTA пишет:
сейчас создал статический метод для удаление объекта и записи в базе
Ваш вариант выглядит лучше Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB