dbh instanceof \mysqli ); } /** * Run a mysqli query & get a result. * * @param $query An SQL query * @param $link A link identifier * @return bool|\mysqli_result|resource For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries, mysqli_query() * will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE. * Returns FALSE on failure. */ public static function to_query( $query, $link ) { if ( self::use_mysqli() ) { return \mysqli_query( $link, $query ); } else { return \mysql_query( $query, $link ); } } /** * Fetch an array. * * @param $result A result set identifier. * @return array|false|nul Returns an array of strings that corresponds to the fetched row, or false if there are no more rows. */ public static function fetch_array( $result ) { if ( self::use_mysqli() ) { return \mysqli_fetch_array( $result, MYSQLI_ASSOC ); } else { return \mysql_fetch_array( $result, MYSQL_ASSOC ); } } /** * Count the number of rows. * * @param $result A result set identifier returned. * @return false|int Returns number of rows in the result set. */ public static function num_rows( $result ) { if ( self::use_mysqli() ) { return \mysqli_num_rows( $result ); } else { return \mysql_num_rows( $result ); } } /** * Connect to Child Site Database. * * @param $host Can be either a host name or an IP address. * @param $user The MySQL user name. * @param $pass The MySQL user password. * @return false|\mysqli|resource object which represents the connection to a MySQL Server or false if an error occurred. */ public static function connect( $host, $user, $pass ) { if ( self::use_mysqli() ) { return \mysqli_connect( $host, $user, $pass ); } else { return \mysql_connect( $host, $user, $pass ); } } /** * Select Child Site DB. * * @param $db Database name. * @return bool true on success or false on failure. */ public static function select_db( $db ) { if ( self::use_mysqli() ) { /** @var $wpdb wpdb */ global $wpdb; return \mysqli_select_db( $wpdb->dbh, $db ); } else { return \mysql_select_db( $db ); } } /** * Get any mysqli errors. * * @return string the error text from the last MySQL function, or '' (empty string) if no error occurred. */ public static function error() { if ( self::use_mysqli() ) { /** @var $wpdb wpdb */ global $wpdb; return \mysqli_error( $wpdb->dbh ); } else { return \mysql_error(); } } /** * Escape a given string. * * @param $value The string to be escaped. Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z. * @return false|string the escaped string, or false on error. */ public static function real_escape_string( $value ) { /** @var $wpdb wpdb */ global $wpdb; if ( self::use_mysqli() ) { return \mysqli_real_escape_string( $wpdb->dbh, $value ); } else { return \mysql_real_escape_string( $value, $wpdb->dbh ); } } /** * Check if $result is an Instantiated object of \mysqli. * * @param $result Instantiated object of \mysqli. * @return mysqli_result|bool Instantiated object of \mysqli, true if var is a resource, false otherwise. */ public static function is_result( $result ) { if ( self::use_mysqli() ) { return ( $result instanceof mysqli_result ); } else { return is_resource( $result ); } } /** * Get the size of the DB. * * @return int|mixed Size of the DB or false on failure. */ public static function get_size() { /** @var $wpdb wpdb */ global $wpdb; $rows = self::to_query( 'SHOW table STATUS', $wpdb->dbh ); $size = 0; while ( $row = self::fetch_array( $rows ) ) { $size += $row['Data_length']; } return $size; } }