大家好,我正在创建自己的数据库类,但我遇到了一个问题。这是我的数据库类
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 为 资源,在 C:\xampp\htdocs\admin\input_validate.php 中给出的空值 25号线
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;
}
基本上你缺少返回语句,所以方法不返回db而是null。
请考虑迁移到 mysqli 或 PDO,因为不再维护 mysql_*。