2015-05-12 149 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 =?'); –

相關問題