使PHP类中的每个函数都引用相同的数据库行

时间:2015-02-06 16:57:07

标签: php class oop

希望为“客户”制作课程。此类的目的是传递一些细节,然后添加用户或更新现有用户。

在此之后,我可能还想与这位'客户做更多事情。

我是班级的新手,所以无论我对当前发起的班级做什么,都需要知道如何始终引用同一行。

基本用途:

$customer = new Customer($customer_details);

在创建此类的新实例时,我希望它能够立即添加/更新一行。

然而,除了稍后我可能想要更新特定字段:

$customer->setValue('firstname','Craig');

但我不想在此功能中进行另一次查找以获取行ID等。我希望$customer始终引用给定$customer_info的用户。

2 个答案:

答案 0 :(得分:1)

假设您希望setValue()更新数据库,我建议您在Customer类中创建一个包含数据库中行标识符的字段。

/**
 * Database identifier.
 *
 * @var string/int
 */
 private $id;

让构造函数使用$this->id = $id在对象创建时设置标识符的值。然后,您的setValue()调用可以使用该标识符来更新数据库中的信息。

修改

如果要创建新的Customer而不是更新现有的{{1}}(将新数据传递给构造函数),那么您正在使用的数据库控制器应该有一种方法来获取新行的ID(给定它)是一个自动递增的值)。否则,ID就是您正在生成的内容,在这种情况下,您只需在类中设置字段值。

答案 1 :(得分:-1)

我认为您指的是Active Record Pattern。您可以在PHP中找到许多实现,例如Propel