我在连接中添加数据库名称时出现连接错误

时间:2015-03-30 07:07:26

标签: mysql mysqli

警告:mysqli_connect():( 42000/1044):拒绝访问用户' -----' @' localhost'到数据库' ----'在---。第4行的PHP 无法连接到MySQL

$db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die("Unable to connect to MySQL");

这是我连接的方式。如果我从那里删除了DB_NAME,我就不会收到错误并连接数据库,但每当我添加DB_NAME时,都会收到此错误消息。 DB_NAME绝对正确,但我不明白为什么?顺便说一下DB_HOST,我使用localhost。


--- ---解决

我终于解决了这个问题。所以,对于那些有同样问题的人,我会解释一切。实际上,我决定在查询之前使用表名,而不是mysqli给了我另一个错误,说" INSERT命令被拒绝给用户......"所以,我打开phpMyAdmin并将我的DB_USER更改为phpMyAdmin中的Database Server部分中编写的名称。你会看到这样的东西;

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.42-cll - MySQL Community Server (GPL)
Protocol version: 10
User: -HERE-
Server charset: UTF-8 Unicode (utf8)

因此您需要使用用户部分中编写的用户名。我更改了DB_USER后,我可以添加DB_NAME。基本上我遇到的所有问题(无法使用DB_NAME并且无法使用sql命令)都引起了我的许可。

关键部分是;我正在使用DB_NAME,我曾经在我的服务器上创建数据库,它也让我连接到数据库,但我可以看到它不是根。所以,如果你有'#34;否认"错误,请确保检查您在mysqli_connect中输入的值!

2 个答案:

答案 0 :(得分:0)

您可以使用

@ mysqli_connect(hostname, username, password, database)

@mysqli_connect(hostname,username, password) 
@ mysqli_select_db(true, database);

$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
  {
  echo "Failed : mysqli_connect_error();
  }

mysqli_select_db($con,"db");

答案 1 :(得分:0)

如果您使用的是localhost,请尝试使用

<?php

    $con = mysqli_connect("localhost", "root", "",  "YOUR_DB_NAME");
    if (mysqli_connect_error()) {
        die ("Could not Connect");
    }
?>

如果您在线执行此操作,请将localhost替换为host_name root,将username ""替换为password,最后替换DB_Name {1}}。我希望这可以解决你的问题:)