用户访问被拒绝' root' localhost' (使用密码:否);

时间:2015-05-12 05:05:47

标签: php mysql pdo

我使用的是PHP amd mysql(XAMPP)。我试图用PDO将我的php文件与数据库连接起来。但它显示以下错误。 (mysql_query():拒绝访问用户&root;' @' localhost'(使用密码:否))。我不知道的问题是什么。我第一次使用PDO。请有人告诉我问题是什么,解决方案是什么。这是我的代码。

$dsn = 'mysql:dbname=abc;host=localhost';
$dbuser = 'user';
$dbpass = 'pass';

$params = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);

$pdo = new PDO($dsn, $dbuser, $dbpass, $params);

2 个答案:

答案 0 :(得分:3)

$dsn = 'mysql:host=localhost;dbname=test';
$dbuser = 'user';
$dbpass = 'pass';

$params = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);

$pdo = new PDO($dsn, $dbuser, $dbpass, $params);
你在这里做错了  MySQL的:DBNAME = ABC;主机=本地主机

                            ^^^^^^^^^^

答案 1 :(得分:1)

嗯,你不能在PDO中使用 mysql_query()。您可以使用 $pdo->query() ,或者更好的$pdo->prepare()使用预先准备好的声明。

mysql_query()来自已弃用的mysql API。

$pdo = new PDO($dsn, $dbuser, $dbpass, $params);
$stmt = $pdo->prepare('SELECT * FROM `table` WHERE id = ?');
$stmt->execute( [ $_GET['id'] ] );
$row = $stmt->fetch();