Intereting Posts
CodeIgniter current_url не отображает строки запроса PHP читает и записывает JSON из файла Лучший способ обновить рейтинг пользователей без убийства сервера Проблема Weird SimpleXML – не может ссылаться на узлы по имени? Как пропустить JSON-массив с помощью PHP Удалить арабский диакритический Вывод исходного потока изображения, а не jpeg, изменение размера изображения Как использовать соединение SQL Server в Laravel? preg_replace, чтобы вырезать непечатаемые символы, кажется, также удаляет все иностранные символы Как подсчитать количество строк, возвращаемых запросом mysql? Динамически вытягивать данные из Dynamics CRM Online анонимная производительность функции в PHP Подключение к FTPS с использованием PHP и сертификата как auth Как исправить эту ошибку «mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в«? Поиск существующей электронной почты и имени пользователя в базе данных

PDO – Работа с табличными префиксами

Мне нравится префикс моих таблиц, если мне нужно установить приложение на хост только с одной базой данных. Мне было интересно, есть ли простой способ работы с префиксами таблиц с использованием класса PDO?

На данный момент мне приходится перезаписывать каждый метод в моей собственной базе данных, заменять% p префиксом и вызывать метод super. Это работает, но это не очень!

Solutions Collecting From Web of "PDO – Работа с табличными префиксами"

Расширение класса PDO, вероятно, является лучшим вариантом.

class MyPDO extends PDO { protected $_table_prefix; protected $_table_suffix; public function __construct($dsn, $user = null, $password = null, $driver_options = array(), $prefix = null, $suffix = null) { $this->_table_prefix = $prefix; $this->_table_suffix = $suffix; parent::__construct($dsn, $user, $password, $driver_options); } public function exec($statement) { $statement = $this->_tablePrefixSuffix($statement); return parent::exec($statement); } public function prepare($statement, $driver_options = array()) { $statement = $this->_tablePrefixSuffix($statement); return parent::prepare($statement, $driver_options); } public function query($statement) { $statement = $this->_tablePrefixSuffix($statement); $args = func_get_args(); if (count($args) > 1) { return call_user_func_array(array($this, 'parent::query'), $args); } else { return parent::query($statement); } } protected function _tablePrefixSuffix($statement) { return sprintf($statement, $this->_table_prefix, $this->_table_suffix); } }