Me gusta prefijar mis tablas en caso de que necesite instalar la aplicación en un host con una sola base de datos. Me preguntaba si hay una manera simple de trabajar con prefijos de tabla usando la clase PDO.
Por el momento, tengo que sobrescribir cada método en mi propia base de datos, reemplazar% p con el prefijo y llamar al método super. ¡Funciona, pero no es bonito!
Mejor respuesta
Ampliar la clase PDO es probablemente la mejor opción.
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);
}
}
Artículos relacionados
- ¿Cómo hago para que Linux reconozca una nueva unidad SATA/dev/sda que intercambié en caliente sin reiniciar?
- php - ¿Cómo convertir entidades HTML como - a sus equivalentes de caracteres?
- php - Trabajar con prefijos y Zend_Controller_Router_Route
- php - nuevo DOP se niega a trabajar
- php - ¿Cómo trabajar con varias tablas y no obtener datos duplicados? (MySQL / PDO)
- php - Uso de PDO para CREAR TABLA
- El error 1934 de SQL Server se produce en la tabla INSERT con una columna calculada PHP / PDO
- php - tabla PDO SUM MYSQL
Por favor indique la dirección original:php – PDO – Trabajar con prefijos de tabla - Código de registro