php - 用户 '' @'localhost' 的访问被拒绝(使用密码 : NO)

标签 php mysql

<分区>

尝试使用以下代码连接到本地主机 sql db(此时不对查询执行任何操作,只想执行查询):

<?php

$host     = "localhost";
$port     = 3306;
$socket   = "";
$user     = "root";
$password = "Password1";
$dbname   = "CIIP_WIKI";

$con = new mysqli($host, $user, $password, $dbname, $port);

if(!$con)
{
echo ("db connection failed!");
die ('Could not connect to the database server' . mysqli_connect_error());
}

else {
    echo ("db connection established.");
    echo ("<br/>");
    }

$query = sprintf("SELECT first_name FROM actor WHERE actor_id='1'");

$result = mysql_query($query);

$con->close();

?>

我不断收到以下...

Welcome

db connection established.

Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in C:\Program Files (x86)\EasyPHP-12.1\www\Cisco Wiki\index.php on line 31

Warning: mysql_query(): A link to the server could not be established in C:\Program Files (x86)\EasyPHP-12.1\www\Cisco Wiki\index.php on line 31

为什么这不起作用?

最佳答案

这是因为您使用 mysqli_ 创建连接,然后使用 mysql_ 尝试获取结果。它们是不同的 API。

<?php

/* You should enable error reporting for mysqli before attempting to make a connection */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

/* Set the desired charset after establishing a connection */
mysqli_set_charset($mysqli, 'utf8mb4');

printf("Success... %s\n", mysqli_get_host_info($mysqli));

Example taken from the PHP manual

关于php - 用户 '' @'localhost' 的访问被拒绝(使用密码 : NO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15015031/

相关文章:

mysql - 为每个 IN id 选择查询和限制

mysql - 如何在MySQL表中选择每1000转

php - 将 MySQL 计数添加到 PHP 数组值中

php - 检测选择了哪个下拉列表并返回其值和 ID

php - 为什么 "INSERT INTO SELECT"比插入慢?

php - 删除php字符串中两个以上的回车符和一个以上的空格

mysql - 如何将mysql中的行分组为具有特定大小的 block

mysql - 将 MySQL 转换为 SQL Server

php - 如何确定函数是否不返回任何内容?

php - 如何在 array_map 的可调用对象中实现类方法