PHP将PDO对象传递给类

时间:2017-06-09 11:37:40

标签: php mysql pdo prepared-statement

我遇到了问题,我无法理解为什么它无法正常工作。这可能很简单。

我将PDO对象传递给同一文件中的一个类,我正在尝试使用该PDO对象执行查询,但是我收到以下错误

  

致命错误:在null

上调用成员函数prepare()

这是我认为应该运行的代码

try{
    $pdo = new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS);
}   
catch (PDOexception $e) {
    // get the error message
    $message = 'Connection failed: ' . $e->getMessage();
}

$test= new Test($pdo);

var_dump($test->get_users());

class Test{

    private $pdo;

    public function __contruct($pdo) {
        $this->pdo = $pdo;
    }

    public function get_users() {

        $sql = "SELECT 
                    user.*, 
                    user_role.role AS role
                FROM user
                    LEFT JOIN user_role ON
                        user.role_id = user_role.id;";

        $stmt = $this->pdo->prepare($sql);
        $stmt->execute();

        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

知道造成错误的原因

1 个答案:

答案 0 :(得分:1)

这是一个错字,您键入__contruct而不是__construct。缺少s