2017-02-03 114 views
-1

我正在寫一個數據庫類,它將連接到我的pdo數據庫。這個類是使用這個配置文件,以獲得所需的信息:無法連接到php數據庫與pdo

<?php 
return [ 
    'host' => '127.0.0.1', 
    'username' => 'root', 
    'password' => '', 
    'database_name' => 'books', 
    'database_type' => 'mysql', 
    'options' => [] 
]; 

這是數據庫類:

<?php 
class DB 
{ 
    public static function connect($config) 
    { 
     try { 
      return new PDO([ 
       $config['database_type'] . ':host=' . $config['host'] . ';dbname=' . $config['database_name'], 
       $config['username'], 
       $config['password'], 
       $config['options'] 
      ]); 
     } catch(PDOException $e) { 
      die($e->getMessage()); 
     } 
    } 
} 

我收到此錯誤:

Fatal error: Uncaught TypeError: PDO::__construct() expects parameter 1 to be string, array given in and etc...

我想知道我做錯了什麼,我沒有看到我的代碼中有任何語法錯誤。

回答

1

你有一組額外的括號:

 return new PDO([ 
      ... 
     ]); 

...不應該有[和]分別;他們將你的四個函數參數變成一個單一的數組參數。你只需要

 return new PDO(
      ... 
     ); 

HTH!

+0

你是對的。完全是我的不好。甚至沒有注意到它。謝謝! –