PDO sınıfını genişletmek muhtemelen en iyi seçenektir. > _ Table_suffix` -
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);
}
}
hi sadece bana veya işlev/yönteme 'son bit' $ this_table_suffix' o '$ bu olduğunu varsayalım _tablePrefixSuffix' mı? – Val
Bunun örneğin çalışma örneği olarak kabul edilmediğinden emin olun, çünkü sprintf, özel dizgilerle biçim dizesini bekler, ancak "$ deyimi" argümanı sadece basitçe yok sayılan ve olduğu gibi dönen düz bir dizedir. –
Tamam, anladım. Tablo adını bağlantılarla belirtin: '$ table ="% 1 \ $ s {$ table}% 2 \ $ s "' –