* @file
* @ingroup Database
*/
+namespace Wikimedia\Rdbms;
+
+use mysqli;
+use mysqli_result;
+use IP;
/**
* Database abstraction object for PHP extension mysqli.
* @see Database
*/
class DatabaseMysqli extends DatabaseMysqlBase {
- /** @var mysqli */
- protected $mConn;
+ /** @var $mConn mysqli */
/**
* @param string $sql
* @throws DBConnectionError
*/
protected function mysqlConnect( $realServer ) {
- global $wgDBmysql5;
-
# Avoid suppressed fatal error, which is very hard to track down
if ( !function_exists( 'mysqli_init' ) ) {
throw new DBConnectionError( $this, "MySQLi functions missing,"
$mysqli = mysqli_init();
$connFlags = 0;
- if ( $this->mFlags & DBO_SSL ) {
+ if ( $this->mFlags & self::DBO_SSL ) {
$connFlags |= MYSQLI_CLIENT_SSL;
$mysqli->ssl_set(
$this->sslKeyPath,
$this->sslCiphers
);
}
- if ( $this->mFlags & DBO_COMPRESS ) {
+ if ( $this->mFlags & self::DBO_COMPRESS ) {
$connFlags |= MYSQLI_CLIENT_COMPRESS;
}
- if ( $this->mFlags & DBO_PERSISTENT ) {
+ if ( $this->mFlags & self::DBO_PERSISTENT ) {
$realServer = 'p:' . $realServer;
}
- if ( $wgDBmysql5 ) {
+ if ( $this->utf8Mode ) {
// Tell the server we're communicating with it in UTF-8.
// This may engage various charset conversions.
$mysqli->options( MYSQLI_SET_CHARSET_NAME, 'utf8' );
}
/**
- * @param mysqli $res
+ * @param mysqli_result $res
* @return bool
*/
protected function mysqlFreeResult( $res ) {
}
/**
- * @param mysqli $res
+ * @param mysqli_result $res
* @return bool
*/
protected function mysqlFetchObject( $res ) {
}
/**
- * @param mysqli $res
+ * @param mysqli_result $res
* @return bool
*/
protected function mysqlFetchArray( $res ) {
}
/**
- * @param mysqli $res
+ * @param mysqli_result $res
* @return mixed
*/
protected function mysqlNumRows( $res ) {
}
/**
- * @param resource|ResultWrapper $res
+ * @param mysqli $res
* @param int $n
* @return mixed
*/
}
/**
- * @param resource|ResultWrapper $res
+ * @param mysqli $res
* @param int $n
* @return mixed
*/
}
/**
- * @param resource|ResultWrapper $res
+ * @param mysqli_result $res
* @param int $row
* @return mixed
*/
}
}
}
+
+class_alias( DatabaseMysqli::class, 'DatabaseMysqli' );