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

📄 storage_engines.lib.php

📁 一个用PHP编写的
💻 PHP
字号:
<?php/* $Id: storage_engines.lib.php,v 2.8.2.1 2006/02/19 15:34:39 lem9 Exp $ */// vim: expandtab sw=4 ts=4 sts=4:/** * Library for extracting information about the available storage engines */$GLOBALS['mysql_storage_engines'] = array();if (PMA_MYSQL_INT_VERSION >= 40102) {    /**     * For MySQL >= 4.1.2, the job is easy...     */    $res = PMA_DBI_query('SHOW STORAGE ENGINES');    while ($row = PMA_DBI_fetch_assoc($res)) {        $GLOBALS['mysql_storage_engines'][strtolower($row['Engine'])] = $row;    }    PMA_DBI_free_result($res);    unset($res, $row);} else {    /**     * Emulating SHOW STORAGE ENGINES...     */    $GLOBALS['mysql_storage_engines'] = array(        'myisam' => array(            'Engine'  => 'MyISAM',            'Support' => 'DEFAULT'        ),        'merge' => array(            'Engine'  => 'MERGE',            'Support' => 'YES'        ),        'heap' => array(            'Engine'  => 'HEAP',            'Support' => 'YES'        ),        'memory' => array(            'Engine'  => 'MEMORY',            'Support' => 'YES'        )    );    $known_engines = array(        'archive' => 'ARCHIVE',        'bdb'     => 'BDB',        'csv'     => 'CSV',        'innodb'  => 'InnoDB',        'isam'    => 'ISAM',        'gemini'  => 'Gemini'    );    $res = PMA_DBI_query('SHOW VARIABLES LIKE \'have\\_%\';');    while ($row = PMA_DBI_fetch_row($res)) {        $current = substr($row[0], 5);        if (!empty($known_engines[$current])) {            $GLOBALS['mysql_storage_engines'][$current] = array(                'Engine'  => $known_engines[$current],                'Support' => $row[1]            );        }    }    PMA_DBI_free_result($res);    unset($known_engines, $res, $row);}/** * Function for generating the storage engine selection * * @author  rabus * @uses    $GLOBALS['mysql_storage_engines'] * @param   string  $name       The name of the select form element * @param   string  $id         The ID of the form field * @param   boolean $offerUnavailableEngines *                              Should unavailable storage engines be offered? * @param   string  $selected   The selected engine * @param   int     $indent     The indentation level * @return  string  html selectbox */function PMA_generateEnginesDropdown($name = 'engine', $id = null,  $offerUnavailableEngines = false, $selected = null, $indent = 0){    $selected   = strtolower($selected);    $spaces     = str_repeat( '    ', $indent );    $output     = $spaces . '<select name="' . $name . '"'        . (empty($id) ? '' : ' id="' . $id . '"') . '>' . "\n";    foreach ($GLOBALS['mysql_storage_engines'] as $key => $details) {        if (!$offerUnavailableEngines          && ($details['Support'] == 'NO' || $details['Support'] == 'DISABLED')) {            continue;        }        $output .= $spaces . '    <option value="' . htmlspecialchars($key). '"'            . (empty($details['Comment'])                ? '' : ' title="' . htmlspecialchars($details['Comment']) . '"')            . ($key == $selected || (empty($selected) && $details['Support'] == 'DEFAULT')                ? ' selected="selected"' : '') . '>' . "\n"            . $spaces . '        ' . htmlspecialchars($details['Engine']) . "\n"            . $spaces . '    </option>' . "\n";    }    $output .= $spaces . '</select>' . "\n";    return $output;}/** * defines */define('PMA_ENGINE_SUPPORT_NO', 0);define('PMA_ENGINE_SUPPORT_DISABLED', 1);define('PMA_ENGINE_SUPPORT_YES', 2);define('PMA_ENGINE_SUPPORT_DEFAULT', 3);/** * Abstract Storage Engine Class */class PMA_StorageEngine{    /**     * @var string engine name     */    var $engine  = 'dummy';    /**     * @var string engine title/description     */    var $title   = 'PMA Dummy Engine Class';    /**     * @var string engine lang description     */    var $comment = 'If you read this text inside phpMyAdmin, something went wrong...';    /**     * @var integer engine supported by current server     */    var $support = PMA_ENGINE_SUPPORT_NO;    /**     * public static final PMA_StorageEngine getEngine()     *     * Loads the corresponding engine plugin, if available.     *     * @uses    str_replace()     * @uses    file_exists()     * @uses    PMA_StorageEngine     * @param   string  $engine   The engine ID     * @return  object  The engine plugin     */    function getEngine($engine)    {        $engine = str_replace('/', '', str_replace('.', '', $engine));        if (file_exists('./libraries/engines/' . $engine . '.lib.php')          && include_once('./libraries/engines/' . $engine . '.lib.php')) {            $class_name = 'PMA_StorageEngine_' . $engine;            $engine_object = new $class_name($engine);        } else {            $engine_object = new PMA_StorageEngine($engine);        }        return $engine_object;    }    /**     * Constructor     *     * @uses    $GLOBALS['mysql_storage_engines']     * @uses    PMA_ENGINE_SUPPORT_DEFAULT     * @uses    PMA_ENGINE_SUPPORT_YES     * @uses    PMA_ENGINE_SUPPORT_DISABLED     * @uses    PMA_ENGINE_SUPPORT_NO     * @uses    $this->engine     * @uses    $this->title     * @uses    $this->comment     * @uses    $this->support     * @param   string  $engine The engine ID     */    function __construct($engine)    {        if (!empty($GLOBALS['mysql_storage_engines'][$engine])) {            $this->engine  = $engine;            $this->title   = $GLOBALS['mysql_storage_engines'][$engine]['Engine'];            $this->comment =                (isset($GLOBALS['mysql_storage_engines'][$engine]['Comment'])                    ? $GLOBALS['mysql_storage_engines'][$engine]['Comment']                    : '');            switch ($GLOBALS['mysql_storage_engines'][$engine]['Support']) {                case 'DEFAULT':                    $this->support = PMA_ENGINE_SUPPORT_DEFAULT;                    break;                case 'YES':                    $this->support = PMA_ENGINE_SUPPORT_YES;                    break;                case 'DISABLED':                    $this->support = PMA_ENGINE_SUPPORT_DISABLED;                    break;                case 'NO':                default:                    $this->support = PMA_ENGINE_SUPPORT_NO;            }        }    }    /**     * old PHP 4 style constructor     * @deprecated     * @see     PMA_StorageEngine::__construct()     * @uses    PMA_StorageEngine::__construct()     * @param   string  $engine engine name     */    function PMA_StorageEngine($engine)    {        $this->__construct($engine);    }    /**     * public String getTitle()     *     * Reveals the engine's title     * @uses    $this->title     * @return  string   The title     */    function getTitle()    {        return $this->title;    }    /**     * public String getComment()     *     * Fetches the server's comment about this engine     * @uses    $this->comment     * @return  string   The comment     */    function getComment()    {        return $this->comment;    }    /**     * public String getSupportInformationMessage()     *     * @uses    $GLOBALS['strDefaultEngine']     * @uses    $GLOBALS['strEngineAvailable']     * @uses    $GLOBALS['strEngineDisabled']     * @uses    $GLOBALS['strEngineUnsupported']     * @uses    $GLOBALS['strEngineUnsupported']     * @uses    PMA_ENGINE_SUPPORT_DEFAULT     * @uses    PMA_ENGINE_SUPPORT_YES     * @uses    PMA_ENGINE_SUPPORT_DISABLED     * @uses    PMA_ENGINE_SUPPORT_NO     * @uses    $this->support     * @uses    $this->title     * @uses    sprintf     * @return  string   The localized message.     */    function getSupportInformationMessage()    {        switch ($this->support) {            case PMA_ENGINE_SUPPORT_DEFAULT:                $message = $GLOBALS['strDefaultEngine'];                break;            case PMA_ENGINE_SUPPORT_YES:                $message = $GLOBALS['strEngineAvailable'];                break;            case PMA_ENGINE_SUPPORT_DISABLED:                $message = $GLOBALS['strEngineDisabled'];                break;            case PMA_ENGINE_SUPPORT_NO:            default:                $message = $GLOBALS['strEngineUnsupported'];        }        return sprintf($message, htmlspecialchars($this->title));    }    /**     * public string[][] getVariables()     *     * Generates a list of MySQL variables that provide information about this     * engine. This function should be overridden when extending this class     * for a particular engine.     *     * @abstract     * @return   Array   The list of variables.     */    function getVariables()    {        return array();    }    /**     * returns string with filename for the MySQL helppage     * about this storage engne     *     * @return  string  mysql helppage filename     */    function getMysqlHelpPage()    {        return $this->engine . '-storage-engine';    }    /**     * public string getVariablesLikePattern()     *     * @abstract     * @return  string  SQL query LIKE pattern     */    function getVariablesLikePattern()    {        return false;    }    /**     * public String[] getInfoPages()     *     * Returns a list of available information pages with labels     *     * @abstract     * @return  array    The list     */    function getInfoPages()    {        return array();    }    /**     * public String getPage()     *     * Generates the requested information page     *     * @abstract     * @param   string  $id The page ID     *     * @return  string      The page     *          boolean     or false on error.     */    function getPage($id)    {        return false;    }}?>

⌨️ 快捷键说明

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