我正试图利用自定义会话处理程序将会话数据存储在MySQL数据库中。但是,我一直收到以下警告:
mysql_close(): supplied argument is not a valid MySQL-Link resource
这是我正在使用的代码,我从here得到的代码:
function _open(){
global $_sess_db;
$_sess_db = mysql_connect("localhost", "root", "******");
if ($_sess_db) {
return mysql_select_db('style', $_sess_db);
}
return false;
}
function _close(){
global $_sess_db;
return mysql_close($_sess_db); //error happens here
}
错误消息的全文最终指向最终的“return mysql_close($ _ sess_db);”线。我可以确认mysql_connect信息确实有效,并且我确实也定义了其余的会话处理函数。
如果有帮助,我会在页面加载时立即得到这些错误,而不会实际调用任何会话处理函数,也不会打开任何当前会话。
答案 0 :(得分:3)
问题是你的变量范围。如果变量未首先在函数外定义,则global关键字不执行任何操作。另一种方法是使用超全局$ GLOBALS ['_ sess_db'],或首先在任何函数之外定义$ _sess_db。
答案 1 :(得分:0)
尝试在_open()和_close()中添加一些调试打印输出,并查看它们是否在您不期望它们时被调用。