连接到db时出错

时间:2012-06-25 09:42:22

标签: php mysql pdo

我第一次开始在php中使用PDO。

这是我的代码:

$host="localhost";
$dbname="meme";
$user="root";
$pass="dream";

global $dbh;
try 
{ 
    //dbh : Database Handle  
    $dbh= new PDO("mysql:host=$host;dbname=$dbname,$user,$pass");  
}  
catch(PDOException $e)
{  
    echo $e->getMessage();  
}

我收到了这个错误:

SQLSTATE[28000] [1045] Access denied for user 'www-data'@'localhost'
(using password: NO)

我想这是一个常见的错误,因为我可以在Google和StackOverflow上获得一些相关的帖子,但我无法纠正它,可能是因为我在该领域的知识有限。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

请改用:

$dbh= new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);

您完全引用了DSN,用户名和密码。这样,这3个参数实际上只是一个参数。因此,从PDO'构造函数POV,您没有传递用户名和密码。

答案 1 :(得分:1)

这可能是由于MySQL的许可系统。您应该显式授予@localhost(使用命名套接字)而不是默认@%(使用网络套接字)的权限:

GRANT ALL ON database_name.* TO `www-data`@localhost IDENTIFIED BY 'password';
是的,我以为你在自己的馅饼里打错了。报价应该在,$user,$pass);

之前