方法 findAll() MVC

问题描述

你好,我是一名学生,我有一项关于 MVC 架构的工作, 我必须编写 findAll() 方法 老师把他的MVC结构强加给我们,我承认我什么都不懂

不知道怎么让类做动态查询

我收到此错误

enter image description here

我有这个:

<?PHP
//require('model/Pokemon.PHP');


abstract class AbstractModel
{

    protected static $bdd;

    /**
     * Create query object
     *
     * @param       $sql
     * @param       $classNameObject
     * @param array $params
     *
     * @return bool|PDOStatement
     */
    protected static function createquery($sql,$classNameObject,$params = [])
    {
        //Pour pouvoir executer des requetes sql
        $query = self::DB()->prepare($sql);
        $query->setFetchMode(PDO::FETCH_CLASS,$classNameObject);
        $query->execute($params);

        return $query;
    }

    /**
     * Get PDO connection
     *
     * @return PDO
     */
    private static function DB()
    {
        // A compléter
        // Une seule instance de BDD avec la classe singleton
        // Effectue la connexion à la BDD et renvoi un objet PDO.
        if (self::$bdd === null) {
            // Création de la connexion
            self::$bdd = new PDO('MysqL:host=' . DB_HOST . ';dbname=' . DB_NAME,DB_USER,DB_PASSWORD,[
                PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,PDO::MysqL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
            ]);
        }

        return self::$bdd;
    }


    /**
     * Sélection de tous les enregistrements d'une table
     * @return array Tableau des enregistrements trouvés
     */
    public function findAll()
    {
        $sql = 'SELECT * FROM {$this->class}';

        $query = $this->createquery($sql,self::class);
        return $query->fetchAll();
    }

    /**
     * Sélection d'un enregistrement suivant son id
     * @param int $id id de l'enregistrement
     * @return array Tableau contenant l'enregistrement trouvé
     */

    public function findOneById($id){
        $sql = 'SELECT id,name FROM {$this->class} WHERE id = :id';

        $query = self::createquery($sql,self::class,[
            'id' => $id
        ]);
        return $query->fetch();
    }
}

你能帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)