Удаление запросов в mySQL - PullRequest
       19

Удаление запросов в mySQL

0 голосов
/ 03 февраля 2009

Чтение нижней части документации, а именно:

«Вы все еще можете получить свойства удаленных объектов, но не можете сохранить удаленные объекты.»

Как? Только если вы включите настройку?

Ответы [ 3 ]

0 голосов
/ 03 февраля 2009

Я думаю, что под «объектом» подразумевается объект, который уже был загружен в память. Он говорит, что вы все еще можете посмотреть на его атрибуты, но если вы попытаетесь вызвать save, он попытается выполнить инструкцию UPDATE SQL, которая не будет выполнена, потому что запись была фактически удалена.

0 голосов
/ 03 февраля 2009

Я не очень знаком с точной работой Propel. Но важно понимать разницу между базой данных (MySQL) и уровнем ORM (Propel). Propel - это абстракция, которая представляет строки из базы данных, оборачивая их в объекты. Затем вы можете изменить или удалить такие строки, вызвав метод для соответствующего объекта, и Propel сгенерирует и выполнит необходимый оператор SQL.

Таким образом, после выполнения оператора SQL DELETE оболочка объекта по-прежнему будет содержать данные, которые были загружены до удаления строки. Но это больше не позволит вам изменять данные строки, потому что Propel не может записать эти изменения.

0 голосов
/ 03 февраля 2009

Удаленный объект просто удаляется в базе данных и помечается как удаляемый. Вы по-прежнему можете обращаться к нему в php, например, чтобы отобразить некоторые прощальные данные для пользователя («Продукт XYZ был удален»).

...