我目前正在研究课程等。 我想从我的数据库中加载一些东西到我的对象中,如下所示:
$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
。我猜测必须有一个更快的方法来做到这一点,我根本无法弄清楚如何......谷歌也无济于事。
有什么想法吗?
答案 0 :(得分: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
也是安全的。