【发布时间】:2019-02-21 19:08:07
【问题描述】:
我定义:
$hostname= "localhost";
$database = "company";
$username = "dxy";
$password= "abc";
$c = mysqli_connect($hostname, $username, $password);
我得到以下错误:
错误 2:用户 'root'@'localhost' 的访问被拒绝(使用密码:否)
为什么它尝试通过root@localhost 而不是dxy@localhost 连接?
我在这台专用服务器上有另一个应用程序。但它通过username@localhost 连接而不是root....这有什么问题?
当我将mysqli 更改为mysql 时,它会完美连接。
感谢您的帮助。
【问题讨论】:
-
我看不到此代码生成该错误消息。你确定它不是来自代码中的其他地方,或者你的变量没有被覆盖?
-
注意:
mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)和$db->prepare("…")过程化接口是 PHP 4 时代引入mysqliAPI 时的产物,不应在新代码中使用。 -
我添加了第四个参数,没有运气。当我将 mysqli 更改为 mysql 时,一切正常。不,这是连接错误。我正在使用 Plesk 来管理我的服务器,所以不确定它是否与此有关
-
我将在不久的将来迁移到 mysqli API...我的应用程序很重,有超过 200 个动态页面...
-
没有足够的代码来支持这个问题。我有一种感觉,你没有向我们展示/告诉我们一切。我认为您仍在使用一些旧的 mysql_* 函数,并且可能没有一个数据库连接。我几乎 100% 确定您正在混合使用不同的 mysql api。
标签: php mysql mysqli localhost database-connection