芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/optimyar/wp-content/plugins/jet-tabs/includes/modules/jet-cache/inc/db-manager.php
init_db_required(); } /** * [wpdb description] * @return [type] [description] */ public function wpdb() { global $wpdb; return $wpdb; } /** * Return table name by key * * @param string $table table key. * @return string */ public static function tables( $table = null, $return = 'all' ) { global $wpdb; $prefix = 'jet_'; $tables = [ 'cache' => [ 'name' => $wpdb->prefix . $prefix . 'cache', 'export_name' => $prefix . 'cache', 'query' => " id bigint(20) NOT NULL AUTO_INCREMENT, source varchar(191) DEFAULT 'default' NOT NULL, source_id bigint(20) DEFAULT '0' NOT NULL, cache_key varchar(191), cache_data longtext, cache_expired text, PRIMARY KEY (id) ", ], ]; if ( ! $table && 'all' === $return ) { return $tables; } switch ( $return ) { case 'all': return isset( $tables[ $table ] ) ? $tables[ $table ] : false; case 'name': return isset( $tables[ $table ] ) ? $tables[ $table ]['name'] : false; case 'query': return isset( $tables[ $table ] ) ? $tables[ $table ]['query'] : false; } return false; } /** * @return void */ public function init_db_required() { global $wpdb; $table_name = $wpdb->prefix . 'jet_cache'; if ( empty( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) ) { self::create_tables(); } } /** * Create all tables on activation * * @return [type] [description] */ public static function create_tables() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); foreach ( self::tables() as $table ) { $table_name = $table['name']; $table_query = $table['query']; if ( $table_name !== $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) { $sql = "CREATE TABLE $table_name ( $table_query ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } } } /** * @param $key * @param $data * @param $expiration * @return bool|int|\mysqli_result|null */ public function set_cache( $key = false, $data = [], $expiration = 0, $source_id = 0, $source = 'default' ) { $table_name = $this->tables( 'cache', 'name' ); $cache_row = $this->wpdb()->get_row( $this->wpdb()->prepare( "SELECT * FROM $table_name WHERE cache_key = %s", $key ), OBJECT ); $cache_data = maybe_serialize( $data ); $status = false; $expiration_time = time() + (int) $expiration; if ( empty( $cache_row ) ) { $status = $this->wpdb()->insert( $table_name, [ 'source' => $source, 'source_id' => $source_id, 'cache_key' => $key, 'cache_data' => $cache_data, 'cache_expired' => $expiration_time, ] ); } return $status; } /** * [insert_review description] * @param array $args [description] * @return [type] [description] */ public function get_cache( $key = false, $default = false ) { $table_name = $this->tables( 'cache', 'name' ); $cache_row = $this->wpdb()->get_row( $this->wpdb()->prepare( "SELECT * FROM $table_name WHERE cache_key = %s", $key ), OBJECT ); if ( empty( $cache_row ) ) { return $default; } $cache_expired = $cache_row->cache_expired; if ( ! empty( $cache_expired ) && $cache_expired < time() ) { $this->delete_cache( $key ); return false; } return maybe_unserialize( $cache_row->cache_data ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache( $key = false ) { if ( ! $key ) { return false; } $table_name = $this->tables( 'cache', 'name' ); return $this->wpdb()->delete( $table_name, [ 'cache_key' => $key ] ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache_by_instance_id( $source_id = false, $source = false ) { if ( ! $source_id ) { return false; } $table_name = $this->tables( 'cache', 'name' ); $params = [ 'source_id' => $source_id ]; if ( ! empty( $source ) ) { $params['source'] = $source; } return $this->wpdb()->delete( $table_name, $params ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache_by_source( $source = false ) { if ( ! $source ) { return false; } $table_name = $this->tables( 'cache', 'name' ); $params = [ 'source' => $source ]; return $this->wpdb()->delete( $table_name, $params ); } /** * Returns the instance. * * @return object * @since 1.0.0 */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } }