Php 从数据库到模型的数据获取

Php 从数据库到模型的数据获取,php,database,oop,Php,Database,Oop,到目前为止,我已经在我的应用程序中使用了许多对象,但通常如果我必须在页面上显示例如用户的配置文件,我只需使用对象中的某种方法从数据库中获取20个用户作为数组,并将其分配给查看 现在我想用表示真实数据的模型创建更多的应用程序。因此,对于每个用户,我可能都应该拥有具有属性的user对象 在这里,我使用示例代码从数据库中获取用户并在PHP中显示他们: <?php $db = new mysqli('localhost', 'root', '', 'mytest'); class User {

到目前为止,我已经在我的应用程序中使用了许多对象,但通常如果我必须在页面上显示例如用户的配置文件,我只需使用对象中的某种方法从数据库中获取20个用户作为数组,并将其分配给查看

现在我想用表示真实数据的模型创建更多的应用程序。因此,对于每个用户,我可能都应该拥有具有属性的user对象

在这里,我使用示例代码从数据库中获取用户并在PHP中显示他们:

<?php

$db = new mysqli('localhost', 'root', '', 'mytest');

class User
{
    private $id;
    private $name;

    public function __construct($data)
    {
        foreach ($data as $k => $v) {
            if (property_exists($this, $k)) {
                $this->$k = $v;
            }

        }
    }
    public function show()
    {
        return $this->id . ' ' . $this->name ;
    }
}

$result = $db->query("SELECT * FROM `user` LIMIT 20");

$users = array();
while ($data = $result->fetch_object()) {
    $data->x = 10; // just to test if property isn't created
    $users[] = new User($data);
}

// displaying it on page
foreach ($users as $user) {
    echo $user->show() . "<br />";
}

首先,我将在单独的类中移动DB操作,而不是与User类内联。您可以创建一个抽象模型类,用户类将对其进行扩展并向其添加DB逻辑

您将有一个select()方法来查询数据库,该方法将返回扩展模型类(本例中的用户类)的类的对象数组

回答您的问题:

  • 我想没关系。大多数orm都是这样工作的
  • 另一种方法是将数据库中的用户行数据分配给用户类中的$data属性,并使用神奇的方法\uuuu get和\uuu set来访问它们