-1

输入登录详细信息时出现问题,我收到此错误

Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\Remake Login Page\Classes\Mysql.php on line 22

Mysql.php代码:

<?php

require_once 'includes/constants.php';

class Mysql {
private $conn;

function _construct() {
    $this->$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die 
                  ('There was a problem connecting to the database');
}

function verify_Username_and_Pass($un, $pwd) {


    $query = "SELECT *
            FROM users
            WHERE username = ? AND password = ?
            LIMIT 1";


    if($stmt = $this->conn->prepare($query)) {
        $stmt->bind_param('ss', $un, $pwd);
        $stmt->execute();


        if($stmt->fetch()) {
            $stmt->close();
            return true;
        }
    }

}

}

希望可以有人帮帮我。

提前致谢。

4

3 回答 3

4

构造函数方法以双下划线开头。带有单个下划线的方法只是普通的函数名。

尝试这个:

function __construct() {
    $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database');
}
于 2013-09-01T09:36:15.720 回答
3

您的构造函数需要两个下划线。

于 2013-09-01T09:33:26.450 回答
2

您的构造函数应该说$this->conn而不是$this->$conn.

于 2013-09-01T09:35:40.547 回答