2016-06-11 102 views
-1

我想創建一個簡單的PHP博客並從這裏下載演示文件 - https://daveismyname.com/creating-a-blog-from-scratch-with-php-bp致命錯誤 - 無法連接到數據庫

創建數據庫(名爲blog01)和表成功。

上的index.php我有一個錯誤:
Fatal error: Uncaught exception 'PDOException' with message ' in D:\localhost\blog-01\includes\config.php on line 11

的config.php:

define('DBHOST','localhost'); 
define('DBUSER','username'); 
define('DBPASS','password'); 
define('DBNAME','blog01'); 

$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

我嘗試的用戶名和密碼(演示,管理......)的所有組合都沒有成功。

也嘗試沒有port=8889

php版本 - 5.6.14

任何幫助。

+0

所以'config.php'線11'$ DB =新PDO( 「mysql的:主機=」 DBHOST「;港口= 8889; dbname =「。DBNAME,DBUSER,DBPASS);'? –

+2

'config.php'中似乎沒有11行# – Marcus

+0

您的服務器真的在端口8889上偵聽嗎? MySQL的標準端口是3306。錯誤的端口會產生一個錯誤 – Zimmi

回答

3

您可以添加一個嘗試和掛鉤看到exception的消息:

try { 
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
    exit; 
} 

當端口是不一樣的默認端口(3306爲MySQL)

時才需要的端口

如果是這樣的話那麼連接是:

$db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS); 
+0

佩裏,現在我有這個 - SQLSTATE [HY000] [1045]訪問被拒絕用戶'Admin'@'localhost'(使用密碼:是)' – bonaca

+0

@bonaca好的,這意味着用戶名和/或密碼不正確。您應該檢查您要使用的用戶是否存在,並且密碼屬於該用戶。你有沒有安裝phpmyadmin?這是一個簡單的方法來驗證,如果是不正確的,你可以更改或添加一個新的用戶到你的mysql – Perry

+0

我檢查表'blog-members'。只有一個用戶,名爲Admin,密碼是$ 2y $ 10 $ wJxa1Wm0rtS2BzqKnoCPd.7QQzgu7D/aLlMR5Aw3O.m9jx3oRJ5R2'。我怎樣才能知道真正的密碼? – bonaca