2015-06-01 40 views
-1

所以我有一些PHP連接到我的數據庫,我正在使用MAMP運行,但它看起來並沒有工作。這是我的class.database.php(對不起,代碼有點混亂)。你們認爲這可能是問題還是我的代碼中的其他內容?謝謝您的幫助。php沒有連接到mysql數據庫MAMP

<? 
class dbConnection { 
     protected $db_conn; 
     public $db_name = 'todo'; 
     public $db_user = 'root'; 
     public $db_pass = 'root'; 
     public $db_host = 'localhost'; 

     function connect(){ 
     try{ 
      $this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this",$this->db_user,$this->db_pass) 
        return $this->db_conn; 
    } 
       catch(PDOException $e) 
       { 
        return $e->getMessage(); 
       } 
     } 
      } 

?> 
+0

的*確切*錯誤信息? –

+0

你如何調用連接功能? –

+0

沒有得到任何錯誤消息,只是沒有添加到分支 – user3709389

回答

1

您需要

db_name=$this->db_name 

更換

db_name=$this 

此外,您還需要放置一個分號在該行的末尾。

有了這些錯誤,你應該會得到PHP和PDO錯誤。檢查你的PHP日誌是否有錯誤。你也可以使用「php myscript.php」從命令行運行一個腳本來查看錯誤(儘管你需要一些東西來調用你的類)。要顯示PDO的錯誤,加上下面的 「新PDO」 行此行:

$this->db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
0

你應該

db_name=$this->db_name 

而且取代

db_name=$this 

,您需要將半該行末尾的冒號。 這是你的代碼,我改變它。我測試這些代碼併爲我工作,我希望爲你工作。

<?php 
class dbConnection { 
    protected $db_conn; 
    public $db_name = 'todo'; 
    public $db_user = 'root'; 
    public $db_pass = 'root'; 
    public $db_host = 'localhost'; 

    function connect(){ 
    try{ 
     $this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this->db_name",$this->db_user,$this->db_pass); 
       return $this->db_conn; 
} 
      catch(PDOException $e) 
      { 
       return $e->getMessage(); 
      } 
    } 
     } 

?> 
0

你的語法是錯誤的:

try { 
     $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); 
               ^^^^^^ 

     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    }