我最近将一个应用程序从一个服务器迁移到另一个(更新的)服务器。移动之后,我的数据库会话处理不再有效。当我尝试登录时,我得到以下错误:
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上找到。
有什么想法吗?
发布于 2011-12-07 00:30:13
当调用mysql_real_escape_string()时,听起来您的数据库连接还没有打开。该功能需要一个开放的数据库连接才能工作。如果没有指定,它将假定最后一个已打开的连接。如果没有打开的连接,它将隐式调用不带参数的mysql_connect()。因此,它尝试与and服务器的用户www-data连接的原因是没有密码。
您可能希望在MySQLDatabase::__construct()中调用$this->open(),以便在创建对象时打开连接。
https://stackoverflow.com/questions/8402952
复制相似问题