【问题标题】:Connect Error with mysqli使用 mysqli 连接错误
【发布时间】:2012-12-08 04:17:49
【问题描述】:

我有一个页面导航脚本,它在我的网站上每页返回 65 条记录。在我的托管服务提供商将我转移到另一台服务器之前,它一直运行良好。现在,当我转到该页面时,我收到以下错误:

Warning: mysqli::connect() [mysqli.connect]: (28000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /home/jumbleweed/public_html/registry/browse_2004.php on line 10

Warning: mysqli::query() [mysqli.query]: invalid object or resource mysqli in /home/jumbleweed/public_html/registry/page.php on line 34

Line 9:  $db = new mysqli('localhost', 'my_username', 'my_password', 'my_database');
Line 10: $db->connect();

page.php第34行:

public function countRecords() {
            //returns the number of records
            global $db;
            $count_query = "SELECT COUNT(*) FROM (".$this->query.") as temp";
Line 34:    $result = $db->query($count_query);
            $row = $result->fetch_row();
            return $row[0];
        }

显然,我填写了正确的登录凭据以连接到数据库,但它似乎忽略了它们并尝试使用 root 作为用户名登录。

这是我的托管服务提供商以及他们如何设置服务器的问题吗?

【问题讨论】:

  • new mysqli() 不会自动建立连接,因此在这种情况下不需要调用$db->connect()。您也可以尝试使用127.0.0.1 而不是localhost

标签: php mysqli database-connection


【解决方案1】:

是的,根据评论者的说法,我会放弃 ->connect() 调用。这就是破坏您的代码的原因。并切换到 localhost,所以它使用套接字而不是 IP 连接。

【讨论】:

  • 是的,成功了!如果我注释掉 ->connect() 行,它可以工作。谢谢大家!
【解决方案2】:

由于您使用的是 MySQLi 构造函数,因此无需使用 connect() 方法,因为它会自动连接到数据库。

删除此行,它应该可以工作...

Line 10: $db->connect();

【讨论】:

  • @Rob 然后我猜是 $db-connect();声明导致问题删除它并检查它是否有效...
  • @Rob 如果您的问题得到解决,请考虑接受其中一个答案。
猜你喜欢
  • 2013-11-29
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 2014-01-11
  • 2015-06-04
  • 2013-07-12
  • 2015-04-19
  • 1970-01-01
相关资源
最近更新 更多