2017-05-21 51 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