大家好我正在创建自己的数据库课,但我遇到了一个问题。这是我的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行
答案 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_ *。