基于数据库表的自定义对象

时间:2010-06-08 22:13:12

标签: php oracle

假设我有一个数据库查询,如下所示 -

select name, gender, birthday from person where person_id = 1;

执行此查询时,将返回数据库中的某些记录。我想在函数内部执行此查询,然后创建一个自定义对象,该对象将包含具有相应值的列名称的确切属性。例如,假设对象是 X 。因此它将具有三个属性,分别是 X->名称 X->性别 X->生日,具有相应的属性来自记录的价值。

作为第二个例子,请考虑以下查询 -

select test1, test2, test3 from test where test_id = 1;

我想在同一个函数中执行此查询并使用相同的方法,然后生成一个自定义对象 Y ,其中包含属性 Y-> test1 Y-> test2 Y-> test3

在PHP中可行吗?如果是这样,那怎么样?

编辑:通过自定义对象,我指的是任何类型的对象。它不需要是特定类的实例或类似的东西。我只想从该函数返回一个对象,以便我可以从返回的对象的属性值中填充适当的类。

2 个答案:

答案 0 :(得分:3)

foreach ($result as $key => $value)
{
    $your_object->{$key} = $value;
}

答案 1 :(得分:2)

编辑:这个答案假设Archangel使用了MySQL,事实证明并非如此。抱歉错了!我会在这里留下我的答案,以防任何MySQL人遇到它,并在必要时保留评论。

如果您不关心自定义类并且只想在行对象中使用自定义属性名称,那么这就是您所需要的:

$row_object = mysql_fetch_object($result);

否则,您需要自己编写自己的类(我不确定是否需要构造函数,或者函数是否自动使用数据填充对象):

class X
{
    public $name;
    public $gender;
    public $birthday;
}

然后调用这个函数:

$row_object = mysql_fetch_object($result, 'X');

我知道没有内置的方法可以为您实时生成类;你必须写自己的课程。