2015-06-01 2 views
-1

Итак, у меня есть php для подключения к моей базе данных, который работает с использованием MAMP, но он не выглядит работающим. Это мой класс.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

Как вы называете функцию connect? –

+0

не получает сообщений об ошибках, просто не добавляет в db – user3709389

ответ

1

Вы должны заменить

db_name=$this 

с

db_name=$this->db_name 

Кроме того, вам нужно поместить точку с запятой в конце этой линии.

С этими ошибками вы должны получать ошибки PHP и PDO. Проверьте свои журналы PHP на наличие ошибок. Вы также можете запустить сценарий из командной строки с помощью «php myscript.php», чтобы увидеть ошибки (хотя вам потребуется что-то, чтобы вызвать ваш класс). Для отображения ошибок PDO, добавьте эту строку ниже вашей линии "новый PDO":

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

Вы должны заменить

db_name=$this 

с

db_name=$this->db_name 

Кроме того, вам необходимо поместить полу- двоеточие в конце этой линии. Это ваш код, и я меняю его. Я тестирую этот код и работаю для меня. Я надеюсь работать на вас.

<?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(); 
    } 
Смежные вопросы