拒绝用户'@'localhost'的访问(使用密码:NO)
问题描述:
尝试使用以下代码连接到localhost sql db(此时不做任何与查询有关的查询只是希望查询执行):拒绝用户'@'localhost'的访问(使用密码:NO)
<?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
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (!$link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($link) . "\n";
mysqli_close($link);
?>
你混合了mysql和mysqli的。留一个API。 – 2013-02-22 00:53:25
Mysql_ *和mysqli是两个不同的API – 2013-02-22 01:00:20
可能的重复[PHP MySQLi不识别登录信息](http://stackoverflow.com/questions/11589210/php-mysqli-doesnt-recognize-login-info) – hakre 2013-07-01 07:25:14