⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database_interface.lib.php

📁 WEBGAME源码,有架设说明,只是非常简单
💻 PHP
📖 第 1 页 / 共 3 页
字号:
                    `AVG_ROW_LENGTH`     AS `Avg_row_length`,                    `DATA_LENGTH`        AS `Data_length`,                    `MAX_DATA_LENGTH`    AS `Max_data_length`,                    `INDEX_LENGTH`       AS `Index_length`,                    `DATA_FREE`          AS `Data_free`,                    `AUTO_INCREMENT`     AS `Auto_increment`,                    `CREATE_TIME`        AS `Create_time`,                    `UPDATE_TIME`        AS `Update_time`,                    `CHECK_TIME`         AS `Check_time`,                    `TABLE_COLLATION`    AS `Collation`,                    `CHECKSUM`           AS `Checksum`,                    `CREATE_OPTIONS`     AS `Create_options`,                    `TABLE_COMMENT`      AS `Comment`               FROM `information_schema`.`TABLES`              WHERE `TABLE_SCHEMA` = \'' . addslashes( $database ) . '\'                ' . $sql_where_table;        $tables = PMA_DBI_fetch_result( $sql, 'TABLE_NAME', NULL, $link );        unset( $sql_where_table, $sql );    } else {        if ( true === $tbl_is_group ) {            $sql = 'SHOW TABLE STATUS FROM '                . PMA_backquote( addslashes( $database ) )                .' LIKE \'' . PMA_escape_mysql_wildcards( addslashes( $table ) ) . '%\'';        } else {            $sql = 'SHOW TABLE STATUS FROM '                . PMA_backquote( addslashes( $database ) ) . ';';        }        $tables = PMA_DBI_fetch_result( $sql, 'Name', NULL, $link );        foreach ( $tables as $table_name => $each_table ) {            if ( 'comment' === $tbl_is_group              && 0 === strpos( $each_table['Comment'], $table ) )            {                // remove table from list                unset( $tables[$table_name] );                continue;            }            if ( ! isset( $tables[$table_name]['Type'] )              && isset( $tables[$table_name]['Engine'] ) ) {                // pma BC, same parts of PMA still uses 'Type'                $tables[$table_name]['Type'] =& $tables[$table_name]['Engine'];            } elseif ( ! isset( $tables[$table_name]['Engine'] )              && isset( $tables[$table_name]['Type'] ) ) {                // old MySQL reports Type, newer MySQL reports Engine                $tables[$table_name]['Engine'] =& $tables[$table_name]['Type'];            }            // MySQL forward compatibility            // so pma could use this array as if every server is of version >5.0            $tables[$table_name]['TABLE_SCHEMA']      = $database;            $tables[$table_name]['TABLE_NAME']        =& $tables[$table_name]['Name'];            $tables[$table_name]['ENGINE']            =& $tables[$table_name]['Engine'];            $tables[$table_name]['VERSION']           =& $tables[$table_name]['Version'];            $tables[$table_name]['ROW_FORMAT']        =& $tables[$table_name]['Row_format'];            $tables[$table_name]['TABLE_ROWS']        =& $tables[$table_name]['Rows'];            $tables[$table_name]['AVG_ROW_LENGTH']    =& $tables[$table_name]['Avg_row_length'];            $tables[$table_name]['DATA_LENGTH']       =& $tables[$table_name]['Data_length'];            $tables[$table_name]['MAX_DATA_LENGTH']   =& $tables[$table_name]['Max_data_length'];            $tables[$table_name]['INDEX_LENGTH']      =& $tables[$table_name]['Index_length'];            $tables[$table_name]['DATA_FREE']         =& $tables[$table_name]['Data_free'];            $tables[$table_name]['AUTO_INCREMENT']    =& $tables[$table_name]['Auto_increment'];            $tables[$table_name]['CREATE_TIME']       =& $tables[$table_name]['Create_time'];            $tables[$table_name]['UPDATE_TIME']       =& $tables[$table_name]['Update_time'];            $tables[$table_name]['CHECK_TIME']        =& $tables[$table_name]['Check_time'];            $tables[$table_name]['TABLE_COLLATION']   =& $tables[$table_name]['Collation'];            $tables[$table_name]['CHECKSUM']          =& $tables[$table_name]['Checksum'];            $tables[$table_name]['CREATE_OPTIONS']    =& $tables[$table_name]['Create_options'];            $tables[$table_name]['TABLE_COMMENT']     =& $tables[$table_name]['Comment'];            if ( strtoupper( $tables[$table_name]['Comment'] ) === 'VIEW' ) {                $tables[$table_name]['TABLE_TYPE'] = 'VIEW';            } else {                // TODO difference between 'TEMPORARY' and 'BASE TABLE'                // but how to detect?                $tables[$table_name]['TABLE_TYPE'] = 'BASE TABLE';            }        }    }    if ( $GLOBALS['cfg']['NaturalOrder'] ) {        uksort( $tables, 'strnatcasecmp' );    }    return $tables;}/** * returns array with databases containing extended infos about them * * @param   string          $databases      database * @param   boolean         $force_stats    retrieve stats also for MySQL < 5 * @param   resource        $link           mysql link * @return  array       $databases */function PMA_DBI_get_databases_full( $database = NULL, $force_stats = false, $link = NULL ) {        // initialize to avoid errors when there are no databases    $databases = array();        if ( PMA_MYSQL_INT_VERSION >= 50002 ) {        // get table information from information_schema        if ( $database ) {            $sql_where_schema = 'WHERE `SCHEMA_NAME` LIKE \''                . addslashes( $database ) . '\'';        } else {            $sql_where_schema = '';        }        // for PMA bc:        // `SCHEMA_FIELD_NAME` AS `SHOW_TABLE_STATUS_FIELD_NAME`        $sql = '             SELECT `information_schema`.`SCHEMATA`.*,                    COUNT(`information_schema`.`TABLES`.`TABLE_SCHEMA`)                        AS `SCHEMA_TABLES`,                    SUM(`information_schema`.`TABLES`.`TABLE_ROWS`)                        AS `SCHEMA_TABLE_ROWS`,                    SUM(`information_schema`.`TABLES`.`DATA_LENGTH`)                        AS `SCHEMA_DATA_LENGTH`,                    SUM(`information_schema`.`TABLES`.`MAX_DATA_LENGTH`)                        AS `SCHEMA_MAX_DATA_LENGTH`,                    SUM(`information_schema`.`TABLES`.`INDEX_LENGTH`)                        AS `SCHEMA_INDEX_LENGTH`,                    SUM(`information_schema`.`TABLES`.`DATA_LENGTH`                      + `information_schema`.`TABLES`.`INDEX_LENGTH`)                        AS `SCHEMA_LENGTH`,                    SUM(`information_schema`.`TABLES`.`DATA_FREE`)                        AS `SCHEMA_DATA_FREE`               FROM `information_schema`.`SCHEMATA`          LEFT JOIN `information_schema`.`TABLES`                 ON `information_schema`.`TABLES`.`TABLE_SCHEMA`                  = `information_schema`.`SCHEMATA`.`SCHEMA_NAME`              ' . $sql_where_schema . '           GROUP BY `information_schema`.`SCHEMATA`.`SCHEMA_NAME`';        $databases = PMA_DBI_fetch_result( $sql, 'SCHEMA_NAME', NULL, $link );        unset( $sql_where_schema, $sql );    } else {        foreach ( PMA_DBI_get_dblist( $link ) as $database_name ) {            // MySQL forward compatibility            // so pma could use this array as if every server is of version >5.0            $databases[$database_name]['SCHEMA_NAME']      = $database_name;            if ( $force_stats ) {                require_once 'mysql_charsets.lib.php';                $databases[$database_name]['DEFAULT_COLLATION_NAME']                    = PMA_getDbCollation( $database_name );                // get additonal info about tables                $databases[$database_name]['SCHEMA_TABLES']          = 0;                $databases[$database_name]['SCHEMA_TABLE_ROWS']      = 0;                $databases[$database_name]['SCHEMA_DATA_LENGTH']     = 0;                $databases[$database_name]['SCHEMA_MAX_DATA_LENGTH'] = 0;                $databases[$database_name]['SCHEMA_INDEX_LENGTH']    = 0;                $databases[$database_name]['SCHEMA_LENGTH']          = 0;                $databases[$database_name]['SCHEMA_DATA_FREE']       = 0;                $res = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote( $database_name ) . ';');                while ( $row = PMA_DBI_fetch_assoc( $res ) ) {                    $databases[$database_name]['SCHEMA_TABLES']++;                    $databases[$database_name]['SCHEMA_TABLE_ROWS']                        += $row['Rows'];                    $databases[$database_name]['SCHEMA_DATA_LENGTH']                        += $row['Data_length'];                    $databases[$database_name]['SCHEMA_MAX_DATA_LENGTH']                        += $row['Max_data_length'];                    $databases[$database_name]['SCHEMA_INDEX_LENGTH']                        += $row['Index_length'];                    $databases[$database_name]['SCHEMA_DATA_FREE']                        += $row['Data_free'];                    $databases[$database_name]['SCHEMA_LENGTH']                        += $row['Data_length'] + $row['Index_length'];                }                PMA_DBI_free_result( $res );                unset( $res );            }        }    }    if ( $GLOBALS['cfg']['NaturalOrder'] ) {        uksort( $databases, 'strnatcasecmp' );    }    return $databases;}function PMA_DBI_get_fields($database, $table, $link = NULL) {    if (empty($link)) {        if (isset($GLOBALS['userlink'])) {            $link = $GLOBALS['userlink'];        } else {            return FALSE;        }    }    // here we use a try_query because when coming from    // tbl_create + tbl_properties.inc.php, the table does not exist    $result = PMA_DBI_try_query('SHOW FULL FIELDS FROM ' . PMA_backquote($database) . '.' . PMA_backquote($table), $link);    if (!$result) {        return FALSE;    }    $fields = array();    while ($row = PMA_DBI_fetch_assoc($result)) {        $fields[] = $row;    }    return $fields;}function PMA_DBI_get_variable($var, $type = PMA_DBI_GETVAR_SESSION, $link = NULL) {    if ($link === NULL) {        if (isset($GLOBALS['userlink'])) {            $link = $GLOBALS['userlink'];        } else {            return FALSE;        }    }    if (PMA_MYSQL_INT_VERSION < 40002) {        $type = 0;    }    switch ($type) {        case PMA_DBI_GETVAR_SESSION:            $modifier = ' SESSION';            break;        case PMA_DBI_GETVAR_GLOBAL:            $modifier = ' GLOBAL';            break;        default:            $modifier = '';    }    $res = PMA_DBI_query('SHOW' . $modifier . ' VARIABLES LIKE \'' . $var . '\';', $link);    $row = PMA_DBI_fetch_row($res);    PMA_DBI_free_result($res);    if (empty($row)) {        return FALSE;    } else {        return $row[0] == $var ? $row[1] : FALSE;    }}function PMA_DBI_postConnect($link, $is_controluser = FALSE) {    global $collation_connection, $charset_connection;    if (!defined('PMA_MYSQL_INT_VERSION')) {        $result = PMA_DBI_query('SELECT VERSION() AS version', $link, PMA_DBI_QUERY_STORE);        if ($result != FALSE && @PMA_DBI_num_rows($result) > 0) {            $row   = PMA_DBI_fetch_row($result);            $match = explode('.', $row[0]);            PMA_DBI_free_result($result);        }        if (!isset($row)) {            define('PMA_MYSQL_INT_VERSION', 32332);            define('PMA_MYSQL_STR_VERSION', '3.23.32');        } else{            define('PMA_MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2])));            define('PMA_MYSQL_STR_VERSION', $row[0]);            unset($result, $row, $match);        }    }    if (PMA_MYSQL_INT_VERSION >= 40100) {        // If $lang is defined and we are on MySQL >= 4.1.x,        // we auto-switch the lang to its UTF-8 version (if it exists and user didn't force language)        if (!empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8') && !isset($GLOBALS['cfg']['Lang'])) {            $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';            if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) {                $GLOBALS['lang'] = $lang_utf_8_version;                $GLOBALS['charset'] = $charset = 'utf-8';            }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -