$port = $hostAndPort[1];
}
}
-
+
$connFlags = 0;
if ( $this->mFlags & DBO_SSL ) {
$connFlags |= MYSQLI_CLIENT_SSL;
} else {
$mysqli->options( MYSQLI_SET_CHARSET_NAME, 'binary' );
}
+ $mysqli->options( MYSQLI_OPT_CONNECT_TIMEOUT, 3 );
- $numAttempts = 2;
- for ( $i = 0; $i < $numAttempts; $i++ ) {
- if ( $i > 1 ) {
- usleep( 1000 );
- }
- if ( $mysqli->real_connect( $realServer, $this->mUser,
- $this->mPassword, $this->mDBname, $port, null, $connFlags )
- ) {
- return $mysqli;
- }
+ if ( $mysqli->real_connect( $realServer, $this->mUser,
+ $this->mPassword, $this->mDBname, $port, null, $connFlags )
+ ) {
+ return $mysqli;
}
return false;
*/
protected function mysqlFieldType( $res, $n ) {
$field = $res->fetch_field_direct( $n );
+
return $field->type;
}
protected function mysqlPing() {
return $this->mConn->ping();
}
+
+ /**
+ * Give an id for the connection
+ *
+ * mysql driver used resource id, but mysqli objects cannot be cast to string.
+ */
+ public function __toString() {
+ if ( $this->mConn instanceof Mysqli ) {
+ return (string)$this->mConn->thread_id;
+ } else {
+ // mConn might be false or something.
+ return (string)$this->mConn;
+ }
+ }
}