mysql_close():提供的参数不是有效的MySQL-Link资源

时间:2011-01-14 22:50:15

标签: php mysql

我正试图利用自定义会话处理程序将会话数据存储在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信息确实有效,并且我确实也定义了其余的会话处理函数。

如果有帮助,我会在页面加载时立即得到这些错误,而不会实际调用任何会话处理函数,也不会打开任何当前会话。


2 个答案:

答案 0 :(得分:3)

问题是你的变量范围。如果变量未首先在函数外定义,则global关键字不执行任何操作。另一种方法是使用超全局$ GLOBALS ['_ sess_db'],或首先在任何函数之外定义$ _sess_db。

答案 1 :(得分:0)

尝试在_open()和_close()中添加一些调试打印输出,并查看它们是否在您不期望它们时被调用。