dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove a few method_exists() checks
[lhc/web/wiklou.git]
/
includes
/
libs
/
rdbms
/
database
/
DatabaseMysqli.php
diff --git
a/includes/libs/rdbms/database/DatabaseMysqli.php
b/includes/libs/rdbms/database/DatabaseMysqli.php
index
6d9dabd
..
1c4ed56
100644
(file)
--- a/
includes/libs/rdbms/database/DatabaseMysqli.php
+++ b/
includes/libs/rdbms/database/DatabaseMysqli.php
@@
-37,7
+37,7
@@
use stdClass;
class DatabaseMysqli extends DatabaseMysqlBase {
/**
* @param string $sql
class DatabaseMysqli extends DatabaseMysqlBase {
/**
* @param string $sql
- * @return mysqli_result
+ * @return mysqli_result
|bool
*/
protected function doQuery( $sql ) {
$conn = $this->getBindingHandle();
*/
protected function doQuery( $sql ) {
$conn = $this->getBindingHandle();
@@
-53,10
+53,11
@@
class DatabaseMysqli extends DatabaseMysqlBase {
/**
* @param string $realServer
/**
* @param string $realServer
+ * @param string|null $dbName
* @return bool|mysqli
* @throws DBConnectionError
*/
* @return bool|mysqli
* @throws DBConnectionError
*/
- protected function mysqlConnect( $realServer ) {
+ protected function mysqlConnect( $realServer
, $dbName
) {
# Avoid suppressed fatal error, which is very hard to track down
if ( !function_exists( 'mysqli_init' ) ) {
throw new DBConnectionError( $this, "MySQLi functions missing,"
# Avoid suppressed fatal error, which is very hard to track down
if ( !function_exists( 'mysqli_init' ) ) {
throw new DBConnectionError( $this, "MySQLi functions missing,"
@@
-111,9
+112,15
@@
class DatabaseMysqli extends DatabaseMysqlBase {
}
$mysqli->options( MYSQLI_OPT_CONNECT_TIMEOUT, 3 );
}
$mysqli->options( MYSQLI_OPT_CONNECT_TIMEOUT, 3 );
- if ( $mysqli->real_connect( $realServer, $this->user,
- $this->password, $this->dbName, $port, $socket, $connFlags )
- ) {
+ if ( $mysqli->real_connect(
+ $realServer,
+ $this->user,
+ $this->password,
+ $dbName,
+ $port,
+ $socket,
+ $connFlags
+ ) ) {
return $mysqli;
}
return $mysqli;
}
@@
-132,11
+139,7
@@
class DatabaseMysqli extends DatabaseMysqlBase {
protected function mysqlSetCharset( $charset ) {
$conn = $this->getBindingHandle();
protected function mysqlSetCharset( $charset ) {
$conn = $this->getBindingHandle();
- if ( method_exists( $conn, 'set_charset' ) ) {
- return $conn->set_charset( $charset );
- } else {
- return $this->query( 'SET NAMES ' . $charset, __METHOD__ );
- }
+ return $conn->set_charset( $charset );
}
/**
}
/**
@@
-177,16
+180,23
@@
class DatabaseMysqli extends DatabaseMysqlBase {
return $conn->affected_rows;
}
return $conn->affected_rows;
}
- /**
- * @param string $db
- * @return bool
- */
- function selectDB( $db ) {
- $conn = $this->getBindingHandle();
+ function doSelectDomain( DatabaseDomain $domain ) {
+ if ( $domain->getSchema() !== null ) {
+ throw new DBExpectedError( $this, __CLASS__ . ": domain schemas are not supported." );
+ }
- $this->dbName = $db;
+ $database = $domain->getDatabase();
+ if ( $database !== $this->getDBname() ) {
+ $conn = $this->getBindingHandle();
+ if ( !$conn->select_db( $database ) ) {
+ throw new DBExpectedError( $this, "Could not select database '$database'." );
+ }
+ }
- return $conn->select_db( $db );
+ // Update that domain fields on success (no exception thrown)
+ $this->currentDomain = $domain;
+
+ return true;
}
/**
}
/**