-3

大家好,我正在创建自己的数据库类,但遇到了一个问题。这是我的数据库类

class Mysql {

    var $connect;

    function ConnectDB() {
        $this->connect = mysql_connect(SERVER, USER, PASS) or die(mysql_error());
        mysql_select_db(DB_NAME, $this->connect) or die(mysql_error());
    }

    function IsLogin() {
        if (isset($_SESSION['id']) && isset($_SESSION['rollno'])) {
            $id     = $_SESSION['id'];
            $rollno = $_SESSION['rollno'];
            $query  = "SELECT student_rollno FROM" . TABLE_USER . " WHERE student_email='$id'";
            $result = mysql_query($query, $this->connect);
            $row    = mysql_fetch_assoc($result);
            if (!$result || mysql_num_rows($query) < 1 || $row['student_rollno'] != $rollno) {
                return false;
            }
        }
        return true;
    }
}

;
$database = new Mysql;

db 类由这两个和其他几个函数组成......该IsLogin()函数正在工作。问题是我已将其包含class.page在另一个脚本中,但是当我使用mysql_real_escape_string($string, $database->connectDB());它时说...

警告:mysql_real_escape_string() 期望参数 2 是资源,在第 25 行的 C:\xampp\htdocs\admin\input_validate.php 中给出 null

4

1 回答 1

0
function ConnectDB() {
    $this->connect = mysql_connect(SERVER, USER, PASS) or die(mysql_error());
    mysql_select_db(DB_NAME, $this->connect) or die(mysql_error());
}

应该是这样的:

function ConnectDB() {
    $this->connect = mysql_connect(SERVER, USER, PASS);
    if(!$this->connect){
        die(mysql_error());
    }
    $selectdb = mysql_select_db(DB_NAME, $this->connect);
    if(!$selectdb){
        die(mysql_error());
    }
    return $this->connect;
}

基本上你缺少 return 语句,所以方法不返回 db 而是返回 null。

请考虑迁移到 mysqli 或 PDO,因为不再维护 mysql_*。

于 2012-12-01T09:15:31.913 回答