PHP数据库会话处理忽略MySQL登录凭据

时间:2011-12-06 16:04:08

标签: php mysql session

我最近将应用程序从一台服务器迁移到另一台服务器(更新)服务器。移动后,我的数据库会话处理不再有效。当我尝试登录时,出现以下错误:

PHP Warning:  mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) w/ucr-dev/includes/DatabaseSessionHandler.class.php on line 44

用户www-data不是我指定的数据库用户,也不是数据库的有效用户。当我最初编写这个应用程序时,我写了一篇博客文章,详细说明了确切的步骤和所需的所有代码。该博客条目可在My Blog找到。

任何想法?

1 个答案:

答案 0 :(得分:0)

在调用mysql_real_escape_string()时,听起来您的数据库连接尚未打开。该功能需要开放的数据库连接才能工作。如果未指定,则假定已打开的最后一个连接。如果没有打开连接,它将隐式调用没有参数的mysql_connect()。因此,它试图与网络服务器的用户www-data建立连接并且没有密码。

好像你可能想在$this->open()内调用MySQLDatabase::__construct(),以便在创建对象时打开连接。