2015-05-12 231 views
2

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

$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); 
+0

嗯。它看起来像你的错误不是与该代码。是整个文件? –

+0

你的代码中使用了'mysql_query()'吗? – Jens

+0

似乎你的数据库没有任何密码,但你在代码中提供了一个'试试'dbpass ='';' '(使用密码:NO)'表示数据库没有配置密码 –

回答

2
$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); 

您[R这里做什么错误 的mysql:DBNAME = ABC;主机=本地主机

      ^^^^^^^^^^ 
+0

我不认为'mysql:'后面的参数顺序很重要,但是不管怎样。收到的错误是关于使用mysql_query()而不是关于PDO对象。 – Devon

+0

@Devon ..我没有使用mtsql_query()。 –

+0

@AkshayVaghasiya,然后发布您收到的实际错误消息,因为您发布的错误消息清楚地包含了mysql_query()。 – Devon

0

嘛,你不使用的mysql_query()与PDO。您将使用$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(); 
+0

我无法连接数据库..那么我怎样才能使用$ pdo-> prepare('SELECT * FROM'table' WHERE id =?'); –

相关问题