2017-05-21 76 views
0

我想使用連接到數據庫,但是我得到這個錯誤,我在php終端上運行這個。php oop pdo連接被拒絕?

我檢查了其他的來源是這樣one,但沒有我一直在尋找

任何建議或最佳實踐的答案嗎?

​​

db.php中

<?php 

error_reporting(-1); 

class Db{ 

    private $db_host; 
    private $db_user; 
    private $db_name; 
    private $db_pass; 

    public function __construct() 
    { 
     $this->db_host = "127.0.0.1"; 
     $this->db_user = "root"; 
     $this->db_pass = ""; 
     $this->db_name = "eli9"; 

     try{ 
      $pdo = new PDO("mysql:host=127.0.0.1;dbname=eli9", $this->db_user, $this->db_pass); 
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

      echo "connected sucessfully \n"; 

     } 

     catch(PDOexception $e){ 
      echo $e->getMessage(); 

      echo "something went wrong \n"; 
     } 

    } 


} 

的index.php

<?php 

require_once 'Db.php'; 

$db = new Db(); 

回答

0

試試這個,對我的作品

$pdo = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass); 

設置可變進$this->db_host = "127.0.0.1"但沒有使用連接

嘗試這種無類,直到你連接並使用$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);檢查是否有任何錯誤

也儘量端口8889

try { 
    $db = new PDO("mysql:host=127.0.0.1;port=3306,dbname=eli9", 'root', ''); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
    echo "connected"; 
    } 
catch (PDOException $e){ 
    echo $e->getMessage(); 
    } 
+0

仍然沒有工作 – BARNOWL

+0

嘗試,現在,希望工程這個時候 – skunkhaze

+0

感謝,但仍然沒有工作,我最近更新到PHP 7我使用5.1 – BARNOWL

0

隨着@addie代碼的幫助下,我能夠找到問題,並且它是以下

1)我本來沒有使用的端口號

2)我改變的端口號8889,而不是3306

所以這裏是db.php中

最終代碼
<?php 

error_reporting(-1); 

class Db{ 

    private $db_host; 
    private $db_user; 
    private $db_name; 
    private $db_pass; 

    public function __construct() 
    { 
     $this->db_host = "127.0.0.1"; 
     $this->db_user = "root"; 
     $this->db_pass = "root"; 
     $this->db_name = "eli9"; 

     try { 
      $db = new PDO("mysql:host=127.0.0.1;port=8889,dbname=eli9", 'root', 'root'); 
      $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
      echo "connected"; 


     } 
     catch (PDOException $e){ 
      echo $e->getMessage(); 
     } 


    } 


} 

謝謝@addie,但我的普遍存在的問題是,爲什麼我需要包括在PDO的port如果不是PHP手冊?

+0

您使用的甲基苯丙胺想通了? – skunkhaze

+0

是的,我是怎麼知道的 – BARNOWL

+0

閱讀此https://www.mamp.info/en/documentation/#q6 mamp使用8889 – skunkhaze