mysql_real_escape()参数警告

时间:2012-12-01 09:07:47

标签: php mysql

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

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 class由这两个和其他一些函数组成...... IsLogin()函数正在运行。问题是我已将此class.page包含在另一个脚本中,但当我使用mysql_real_escape_string($string, $database->connectDB());时,它说...

  

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

1 个答案:

答案 0 :(得分: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_ *。