建议
问题描述:
这里是我想要做的:建议
User:
id
first_name
second_name
gender
和我做一个PHP对象“用户”,我修改了“用户”的属性,我更新数据库,例如,
$aUser->setGender("M");
在设置性别
,我执行使用PHP的更新语句......但我有一个问题在这里,如果用户只有4个属性,它是确定我写一个一个。但是,如果对象有很多属性,我需要写更多的更新语句....(我可以编写一个通用更新语句,无论我更改哪个属性,我都更新所有属性一次,但我认为这是没有意义的所以......)我怎样才能简化呢?谢谢。
答
问题的评论显示:您应该不时地使用像save()
这样的方法,而不是在每次更改任何内容时查询数据库。
就我个人而言,即使相应的属性没有更改,也不会在更新每列时发现问题。但是,您可以将原始值保存在另一个(数组)属性中,然后将这些值相互比较。
答
你可以像下面这样的函数(类似于人所提出的建议):
$ aUser-> setValues方法(阵列( “性别”=> “M”, “FIRST_NAME”=> “史蒂夫”));
然后,该函数可以引用您的对象变量来检查它们是否不同并运行更新。或者只是使用相同的值运行更新。
我自己通过在适当的时候调用'save()'方法来做到这一点,但是可能有更好的答案。 – Brad
我想说,在每次更新属性后更新数据库效率极低。相反,我建议你在对象中有一个“更新”方法,并在设置所有属性时调用它。这样,您只有1个数据库调用使其效率更高。 –
确实,但是否不需要再次更新非修改属性? – Tattat