我最近将应用程序从一台服务器迁移到另一台服务器(更新)服务器。移动后,我的数据库会话处理不再有效。当我尝试登录时,出现以下错误:
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找到。
任何想法?
答案 0 :(得分:0)
在调用mysql_real_escape_string()
时,听起来您的数据库连接尚未打开。该功能需要开放的数据库连接才能工作。如果未指定,则假定已打开的最后一个连接。如果没有打开连接,它将隐式调用没有参数的mysql_connect()
。因此,它试图与网络服务器的用户www-data
建立连接并且没有密码。
好像你可能想在$this->open()
内调用MySQLDatabase::__construct()
,以便在创建对象时打开连接。