mirror of
https://github.com/dg/dibi.git
synced 2025-08-04 21:28:02 +02:00
MySQL & MySQLi drivers: configuration items 'options' renamed to 'flags' (old name is alias); added array 'options' for MySQLi
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
* - 'database' - the database name to select
|
* - 'database' - the database name to select
|
||||||
* - 'charset' - character encoding to set
|
* - 'charset' - character encoding to set
|
||||||
* - 'unbuffered' - sends query without fetching and buffering the result rows automatically?
|
* - 'unbuffered' - sends query without fetching and buffering the result rows automatically?
|
||||||
* - 'options' - driver specific constants (MYSQL_*)
|
* - 'flags' - driver specific constants (MYSQL_CLIENT_*)
|
||||||
* - 'sqlmode' - see http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
|
* - 'sqlmode' - see http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
|
||||||
* - 'lazy' - if TRUE, connection will be established only when required
|
* - 'lazy' - if TRUE, connection will be established only when required
|
||||||
* - 'resource' - connection resource (optional)
|
* - 'resource' - connection resource (optional)
|
||||||
@@ -68,13 +68,12 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiReflector
|
|||||||
*/
|
*/
|
||||||
public function connect(array &$config)
|
public function connect(array &$config)
|
||||||
{
|
{
|
||||||
$foo = & $config['options'];
|
|
||||||
|
|
||||||
if (isset($config['resource'])) {
|
if (isset($config['resource'])) {
|
||||||
$this->connection = $config['resource'];
|
$this->connection = $config['resource'];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// default values
|
// default values
|
||||||
|
DibiConnection::alias($config, 'flags', 'options');
|
||||||
if (!isset($config['username'])) $config['username'] = ini_get('mysql.default_user');
|
if (!isset($config['username'])) $config['username'] = ini_get('mysql.default_user');
|
||||||
if (!isset($config['password'])) $config['password'] = ini_get('mysql.default_password');
|
if (!isset($config['password'])) $config['password'] = ini_get('mysql.default_password');
|
||||||
if (!isset($config['host'])) {
|
if (!isset($config['host'])) {
|
||||||
@@ -95,9 +94,9 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiReflector
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($config['persistent'])) {
|
if (empty($config['persistent'])) {
|
||||||
$this->connection = @mysql_connect($host, $config['username'], $config['password'], TRUE, $config['options']); // intentionally @
|
$this->connection = @mysql_connect($host, $config['username'], $config['password'], TRUE, $config['flags']); // intentionally @
|
||||||
} else {
|
} else {
|
||||||
$this->connection = @mysql_pconnect($host, $config['username'], $config['password'], $config['options']); // intentionally @
|
$this->connection = @mysql_pconnect($host, $config['username'], $config['password'], $config['flags']); // intentionally @
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,7 +24,8 @@
|
|||||||
* - 'database' - the database name to select
|
* - 'database' - the database name to select
|
||||||
* - 'charset' - character encoding to set
|
* - 'charset' - character encoding to set
|
||||||
* - 'unbuffered' - sends query without fetching and buffering the result rows automatically?
|
* - 'unbuffered' - sends query without fetching and buffering the result rows automatically?
|
||||||
* - 'options' - driver specific constants (MYSQLI_*)
|
* - 'flags' - driver specific bit constants (MYSQLI_CLIENT_*) {@see mysqli_real_connect}
|
||||||
|
* - 'options' - array of driver specific constants (MYSQLI_*) and values {@see mysqli_options}
|
||||||
* - 'sqlmode' - see http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
|
* - 'sqlmode' - see http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
|
||||||
* - 'lazy' - if TRUE, connection will be established only when required
|
* - 'lazy' - if TRUE, connection will be established only when required
|
||||||
* - 'resource' - connection resource (optional)
|
* - 'resource' - connection resource (optional)
|
||||||
@@ -68,9 +69,6 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiReflector
|
|||||||
*/
|
*/
|
||||||
public function connect(array &$config)
|
public function connect(array &$config)
|
||||||
{
|
{
|
||||||
$foo = & $config['options'];
|
|
||||||
$foo = & $config['database'];
|
|
||||||
|
|
||||||
mysqli_report(MYSQLI_REPORT_OFF);
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
if (isset($config['resource'])) {
|
if (isset($config['resource'])) {
|
||||||
$this->connection = $config['resource'];
|
$this->connection = $config['resource'];
|
||||||
@@ -92,8 +90,21 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiReflector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$foo = & $config['flags'];
|
||||||
|
$foo = & $config['database'];
|
||||||
|
|
||||||
$this->connection = mysqli_init();
|
$this->connection = mysqli_init();
|
||||||
@mysqli_real_connect($this->connection, $config['host'], $config['username'], $config['password'], $config['database'], $config['port'], $config['socket'], $config['options']); // intentionally @
|
if (isset($config['options'])) {
|
||||||
|
if (is_scalar($config['options'])) {
|
||||||
|
$config['flags'] = $config['options']; // back compatibility
|
||||||
|
trigger_error(__CLASS__ . ": configuration item 'options' must be array; for constants MYSQLI_CLIENT_* use 'flags'.", E_USER_NOTICE);
|
||||||
|
} else {
|
||||||
|
foreach ((array) $config['options'] as $key => $value) {
|
||||||
|
mysqli_options($this->connection, $key, $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@mysqli_real_connect($this->connection, $config['host'], $config['username'], $config['password'], $config['database'], $config['port'], $config['socket'], $config['flags']); // intentionally @
|
||||||
|
|
||||||
if ($errno = mysqli_connect_errno()) {
|
if ($errno = mysqli_connect_errno()) {
|
||||||
throw new DibiDriverException(mysqli_connect_error(), $errno);
|
throw new DibiDriverException(mysqli_connect_error(), $errno);
|
||||||
|
@@ -66,6 +66,10 @@ try {
|
|||||||
'password' => 'xxx',
|
'password' => 'xxx',
|
||||||
'database' => 'dibi',
|
'database' => 'dibi',
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8',
|
||||||
|
'options' => array(
|
||||||
|
MYSQLI_OPT_CONNECT_TIMEOUT => 30
|
||||||
|
),
|
||||||
|
'flags' => MYSQLI_CLIENT_COMPRESS,
|
||||||
));
|
));
|
||||||
echo 'OK';
|
echo 'OK';
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user