Предложения по реализации PHP-объекта между базами данных - PullRequest
2 голосов
/ 05 июля 2011

Вот что я хотел бы сделать:

User:
id
first_name
second_name
gender

, и я делаю объект php «Пользователь», и я изменяю атрибут «Пользователь», я обновляю базу данных, например,

$aUser->setGender("M");

в заданном поле, я выполняю оператор обновления с использованием php ... Но у меня возникли проблемы, если у пользователя только 4 атрибута, я могу написать один за другим.Но если объект имеет много атрибутов, мне нужно написать больше оператора обновления .... (Я могу написать общий оператор обновления, независимо от того, что я изменяю, какой атрибут, я обновляю все атрибуты один раз, но я думаю, что нет смысла делатьтак .. ...) Как я могу упростить это?Спасибо.

Ответы [ 3 ]

1 голос
/ 05 июля 2011

В комментариях к этому вопросу это звучит так: вы должны время от времени использовать метод, подобный save(), вместо того, чтобы запрашивать базу данных каждый раз, когда что-то меняется.

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

0 голосов
/ 14 июля 2011

Не изобретай велосипед. Используйте объектно-реляционный картограф. То, что вы делаете, звучит так, как если бы оно было лучше всего обслуживать RedBean .

0 голосов
/ 05 июля 2011

Вы могли бы иметь функцию, подобную следующей (аналогично тому, что предлагают другие):

$ aUser-> setValues ​​(массив ("пол" => "M", "first_name" => "Стив"));

Затем эта функция может ссылаться на переменные вашего объекта, чтобы проверить, отличаются ли они, и запустить обновление. Или просто запустите обновление с теми же значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...