1
显然我的数据库函数不能获取数据库?mysqli无法获取数据库?
警告:mysqli的:: real_escape_string():无法获取数据库
我创建延伸的MySQLi自定义数据库类。
下面是我如何构造它。
public function __construct(){
$db = new mysqli(
DB_HOST, DB_USER, DB_PASS, DB_NAME);
$db->select_db(DB_NAME);
return $db;
}
我正在选择数据库,不是吗?
哪里出现这种情况的代码是在这里:被称为会话管理功能之前,正在启动
private static function readSession($sessionId)
{
global $database;
$sessionId = session_id();
$sessionId = $database->real_escape_string($sessionId);
$time = time();
$result = $database->query("SELECT sessiondata FROM sessions WHERE sessionid='$sessionId' AND expiry > $time");
if ($result->num_rows > 0) {
$row = $result->fetch_array();
return $row['sessiondata'];
}
return "";
}
数据库。
发布你想要调用'real_escape_string()'的代码。当你调用它时,你是否通过实例化上述类来建立数据库连接?如果不是,它将不起作用。您必须拥有活动连接。 –
连接后不需要调用'select_db()',因为您已经在'new mysqli()'构造函数中选择了数据库。 –
哦,我看到您在构造函数中返回'$ db'。不要这样做。构造函数隐式返回对象。请发布其他代码以获取更多上下文。 –