2013-11-21 3 views
0

Я собираюсь использовать класс php, который я нашел для datatables в стиле pdo. В верхней части файла указано следующее:приватная переменная для нового соединения PDO с данными datatables

class TableData { 

private $_db; 

public function __construct() { 

    try { 
     $host  = 'localhost'; 
     $database = 'my_database'; 
     $user  = 'myusername'; 
     $passwd  = 'mypassword'; 

     $this->_db = new PDO('mysql:host='.$host.';dbname='.$database, $user, $passwd, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_PERSISTENT => true)); 
    } 
    catch (PDOException $e) { 
     error_log("Failed to connect to database: ".$e->getMessage()); 
    } 
} 

Я не слишком хорошо знаком с классами и пишу их. Мой вопрос в том, что для других частей моего сайта я уже включаю файл подключения php ... возможно ли использовать мое соединение по умолчанию ниже и избавиться от того, что было в классе? Другими словами, я просто хочу иметь возможность использовать $ db, как обычно, снизу, а не создание частного $ _db; как показано выше. Возможно или нет?

// db config 
$db_host  = 'localhost'; 
$db_database = 'my_database'; 
$db_user  = 'myusername'; 
$db_pass  = 'mypassword'; 

//db connection 
try { 
$db = new PDO("mysql:host=$db_host;dbname=$db_database;charset=utf8", $db_user, $db_pass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_PERSISTENT => true)); 

} 
catch(PDOException $e) { 
error_log("Failed to connect to database: ".$e->getMessage()); 
} 

ответ

1

Я бы создал свой класс PDO снаружи, а затем ввел его в ваш класс. Таким образом, вы используете только одно соединение с базой данных.

class TableData { 
    /** @var \PDO */ 
    protected $pdo; 

    public function __construct(\PDO $pdo) { 
     $this->pdo = $pdo; 
    } 
} 
$class = new TableData($db); 
+0

Я считаю, что это уже настроено таким образом ... Полагаю, я должен был включить весь файл. Я хочу «повторно использовать» мой простой старый файл connection.php, который мне нужен для необходимых файлов, хотя по той же причине - работает только одно соединение. – user756659

Смежные вопросы