【发布时间】:2011-06-20 23:52:30
【问题描述】:
我收到此错误:
调用成员函数 非对象上的 real_escape_string()
这里是$db
$db = new mysqli("127.0.0.1", "用户名", "密码", "sch5400");
在代码中:
function readSession($sessionId) {
global $db;
$sessionId = session_id();
// escape session ID
$sessionId = $db->real_escape_string($sessionId);
$time = time();
$result = $db->query("SELECT sessiondata FROM sessions WHERE sessionid='$sessionId' AND expiry > $time");
if ($result->num_rows > 0) {
$row = $result->fetchRow();
return $row['sessiondata'];
}
// return empty string
return "";
}
它出现在第 5 行,相对于上面的代码。我不是实例化了$db吗?
【问题讨论】:
-
是的。之前好像没有$db。
-
我不是实例化了 $db 吗?不知道。你有吗?
-
@Shamil: php 持反对意见
-
@Shamil:现在你知道为什么
global是不好了 -
@Shamil:创建一个返回
$db的函数。并像$db = get_my_db();一样在每个需要 db 对象的函数中使用它