代码之家  ›  专栏  ›  技术社区  ›  Otmane TALHAOUI

需要在PHP中获取PDO::Fetch_CLASS中的数据

  •  0
  • Otmane TALHAOUI  · 技术社区  · 1 年前

    我面临一个小问题, 我有一个User类,它使用 static::method 并使用我的自定义方法获取所有用户 find_all() ,结果将返回关联数组或对象,我需要数据是与我的类关联的对象,所以我必须使用 fetchAll(PDO::FETCH_CLASS, 'Users') ,问题是,我想使用我的类,它正在使用 __construct() 方法来构建对象,它给了我必需的属性,在这种情况下我不应该使用默认值,因为我想要来自数据库的结果,我希望你能提前得到,谢谢。

    我试着使用默认值,在这种情况下buy不起作用

    2 回复  |  直到 1 年前
        1
  •  0
  •   M.Hammad Nazir    1 年前

    试试这个 PDO::FETCH_CLASS | PDO:FETCH_PROPS_LATE

    这将允许在调用构造函数之前设置属性,使您能够正确初始化对象,而不会遇到缺少所需属性的问题。

        2
  •  0
  •   Otmane TALHAOUI    1 年前
    public function __construct($name = null, $email = null, $phone = null, $country = null, $password = null) {
        $this->name = $name;
        $this->email = $email;
        $this->phone = $phone;
        $this->country = $country;
        $this->password = $password;
    }
    
    public static function find_all() {
        $stmt = static::connect_database()->query('SELECT * FROM users');
        $stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'User');
        return $stmt->fetchAll();
    }
    

    工作良好,感谢@M.hammad_Nazir&@穆罕默德_跖骨