静态连接 PDO

由于我将课程更改为静态并尝试学习 OOP。我的 PDO 停止工作。


你们有什么线索吗?由于 PDO 连接在 DBconnect 中,应该可以正常工作吗?


这是我的代码:


<?php


Class Db{


    private static $dbHost;

    private static $dbUser;

    private static $dbPass;

    private static $dbName;

    private static $dbResult = null;

    public static $dbConnect = null;


    public static function connection(){


        self::$dbHost = '***';

        self::$dbUser = '***';

        self::$dbPass = '***';

        self::$dbName = '***';


        try{

            self::$dbConnect = new PDO('mysql:host='. self::$dbHost . ';dbname=' . self::$dbName,

                self::$dbUser,

                self::$dbPass);


        }catch(PDOException $e){

            echo 'Connection error: ' . $e->getMessage();

        }

    }


    public static function query($sql, $array = []){


        self::$dbResult = self::$dbConnect->prepare($sql);


        self::$dbResult->execute($array);


    }


    public static function getOne(){


        return self::$dbResult->fetch(PDO::FETCH_ASSOC);

    }


    public static function getAll(){


        return self::$dbResult->fetchAll(PDO::FETCH_ASSOC);

    }


    public static function getCount(){


        return self::$dbResult->rowCount();

    }


}

未捕获的错误:在 null 上调用成员函数 prepare()


守候你守候我
浏览 104回答 1
1回答

潇湘沐

根据我们在评论中的扩展讨论,这是因为您从未创建,$dbConnect因为您没有执行执行此操作的函数 ( Db::connection())。在尝试使用其他静态函数之前,只需在某处运行它,您的代码就会工作:Db::connection();Db::query(...);...
打开App,查看更多内容
随时随地看视频慕课网APP