0

我目前正在研究类等。我想从我的数据库中将一些东西加载到我的对象中,如下所示:

$result = mysqli_query($link,"SELECT * FROM `recepten` WHERE `id` = $id LIMIT 1");
$obj = mysqli_fetch_object($result);

$this->id = $obj->id;
$this->titel = $obj->titel;
$this->ingredient = $obj->ingredient;
$this->beschrijving = $obj->beschrijving;
$this->van = $obj->van;
$this->tot = $obj->tot;
$this->altijd = $obj->altijd;

如您所见,我正在$obj直接加载到$this. 我猜必须有一种更快的方法来做到这一点,我根本不知道如何......谷歌也没有帮助。

有什么想法吗?

4

1 回答 1

1

我认为最好的方法是定义您想要的列,然后通过这些列将其加载到您的$this. 请注意,如果这些未在类中定义,它们将是您的类中的公共属性。

$columns = array('id', 'titel', 'ingredient', 'beschrijving', 'van', 'tot', 'altijd');
$selects = implode('`,`', $columns);
$result  = mysqli_query($link, 'SELECT `'.$selects.'` FROM `recepten` WHERE `id` = '.$id.' LIMIT 1');
$obj     = mysqli_fetch_object($result);

foreach ($columns as $column)
    $this->{$column} = $obj->{$column};

确保这$columns不是用户输入,因为它没有被转义。您还应该确保$id安全。

于 2013-08-18T22:18:57.477 回答