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

📄 database_interface.lib.php

📁 一个用PHP编写的
💻 PHP
📖 第 1 页 / 共 3 页
字号:
function PMA_DBI_postConnect($link, $is_controluser = false){    if (!defined('PMA_MYSQL_INT_VERSION')) {        $mysql_version = PMA_DBI_fetch_value(            'SELECT VERSION()', 0, 0, $link, PMA_DBI_QUERY_STORE);        if ( $mysql_version ) {            $match = explode('.', $mysql_version);            define('PMA_MYSQL_INT_VERSION',                (int) sprintf('%d%02d%02d', $match[0], $match[1],                        intval($match[2])));            define('PMA_MYSQL_STR_VERSION', $mysql_version);            unset($mysql_version, $match);        } else {            define('PMA_MYSQL_INT_VERSION', 32332);            define('PMA_MYSQL_STR_VERSION', '3.23.32');        }    }    if (!defined('PMA_ENGINE_KEYWORD')) {        if (PMA_MYSQL_INT_VERSION >= 40102) {            define('PMA_ENGINE_KEYWORD','ENGINE');        } else {            define('PMA_ENGINE_KEYWORD','TYPE');        }    }    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'] = 'utf-8';            }        }        // and we remove the non-UTF-8 choices to avoid confusion        if (!defined('PMA_REMOVED_NON_UTF_8')) {            foreach ( $GLOBALS['available_languages'] as $each_lang => $dummy ) {                if ( substr($each_lang, -5) != 'utf-8' ) {                    unset( $GLOBALS['available_languages'][$each_lang] );                }            }            define('PMA_REMOVED_NON_UTF_8', 1);        }        $mysql_charset = $GLOBALS['mysql_charset_map'][$GLOBALS['charset']];        if ( $is_controluser          || empty($GLOBALS['collation_connection'])          || (strpos($GLOBALS['collation_connection'], '_')                ? substr($GLOBALS['collation_connection'], 0, strpos($GLOBALS['collation_connection'], '_'))                : $GLOBALS['collation_connection']) == $mysql_charset) {            PMA_DBI_query('SET NAMES ' . $mysql_charset . ';', $link,                PMA_DBI_QUERY_STORE);        } else {            PMA_DBI_query('SET CHARACTER SET ' . $mysql_charset . ';', $link,                PMA_DBI_QUERY_STORE);        }        if (!empty($GLOBALS['collation_connection'])) {            PMA_DBI_query('SET collation_connection = \'' . $GLOBALS['collation_connection'] . '\';',                $link, PMA_DBI_QUERY_STORE);        }        if (!$is_controluser) {            $GLOBALS['collation_connection'] = PMA_DBI_get_variable('collation_connection',                PMA_DBI_GETVAR_SESSION, $link);            $GLOBALS['charset_connection']   = PMA_DBI_get_variable('character_set_connection',                PMA_DBI_GETVAR_SESSION, $link);        }        // Add some field types to the list, this needs to be done once per session!        if ($GLOBALS['cfg']['ColumnTypes'][count($GLOBALS['cfg']['ColumnTypes']) - 1] != 'VARBINARY') {            $GLOBALS['cfg']['ColumnTypes'][] = 'BINARY';            $GLOBALS['cfg']['ColumnTypes'][] = 'VARBINARY';        }    } else {        require_once('./libraries/charset_conversion.lib.php');    }}/** * returns a single value from the given result or query, * if the query or the result has more than one row or field * the first field of the first row is returned * * <code> * $sql = 'SELECT `name` FROM `user` WHERE `id` = 123'; * $user_name = PMA_DBI_fetch_value( $sql ); * // produces * // $user_name = 'John Doe' * </code> * * @uses    is_string() * @uses    is_int() * @uses    PMA_DBI_try_query() * @uses    PMA_DBI_num_rows() * @uses    PMA_DBI_fetch_row() * @uses    PMA_DBI_fetch_assoc() * @uses    PMA_DBI_free_result() * @param   string|mysql_result $result query or mysql result * @param   integer             $row_number row to fetch the value from, *                                      starting at 0, with 0 beeing default * @param   integer|string      $field  field to fetch the value from, *                                      starting at 0, with 0 beeing default * @param   resource            $link   mysql link * @param   mixed               $options * @return  mixed               value of first field in first row from result *                              or false if not found */function PMA_DBI_fetch_value( $result, $row_number = 0, $field = 0, $link = null, $options = 0 ) {    $value = false;    if ( is_string( $result ) ) {        $result = PMA_DBI_try_query( $result, $link, $options | PMA_DBI_QUERY_STORE );    }    // return false if result is empty or false    // or requested row is larger than rows in result    if ( PMA_DBI_num_rows( $result ) < ( $row_number + 1 ) ) {        return $value;    }    // if $field is an integer use non associative mysql fetch function    if ( is_int( $field ) ) {        $fetch_function = 'PMA_DBI_fetch_row';    } else {        $fetch_function = 'PMA_DBI_fetch_assoc';    }    // get requested row    for ( $i = 0; $i <= $row_number; $i++ ) {        $row = $fetch_function( $result );    }    PMA_DBI_free_result( $result );    // return requested field    if ( isset( $row[$field] ) ) {        $value = $row[$field];    }    unset( $row );    return $value;}/** * returns only the first row from the result * * <code> * $sql = 'SELECT * FROM `user` WHERE `id` = 123'; * $user = PMA_DBI_fetch_single_row( $sql ); * // produces * // $user = array( 'id' => 123, 'name' => 'John Doe' ) * </code> * * @uses    is_string() * @uses    PMA_DBI_try_query() * @uses    PMA_DBI_num_rows() * @uses    PMA_DBI_fetch_row() * @uses    PMA_DBI_fetch_assoc() * @uses    PMA_DBI_fetch_array() * @uses    PMA_DBI_free_result() * @param   string|mysql_result $result query or mysql result * @param   string              $type   NUM|ASSOC|BOTH *                                      returned array should either numeric *                                      associativ or booth * @param   resource            $link   mysql link * @param   mixed               $options * @return  array|boolean       first row from result *                              or false if result is empty */function PMA_DBI_fetch_single_row( $result, $type = 'ASSOC', $link = null, $options = 0 ) {    if ( is_string( $result ) ) {        $result = PMA_DBI_try_query( $result, $link, $options | PMA_DBI_QUERY_STORE );    }    // return null if result is empty or false    if ( ! PMA_DBI_num_rows( $result ) ) {        return false;    }    switch ( $type ) {        case 'NUM' :            $fetch_function = 'PMA_DBI_fetch_row';            break;        case 'ASSOC' :            $fetch_function = 'PMA_DBI_fetch_assoc';            break;        case 'BOTH' :        default :            $fetch_function = 'PMA_DBI_fetch_array';            break;    }    $row = $fetch_function( $result );    PMA_DBI_free_result( $result );    return $row;}/** * returns all rows in the resultset in one array * * <code> * $sql = 'SELECT * FROM `user`'; * $users = PMA_DBI_fetch_result( $sql ); * // produces * // $users[] = array( 'id' => 123, 'name' => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 'id' ); * // produces * // $users['123'] = array( 'id' => 123, 'name' => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 0 ); * // produces * // $users['123'] = array( 0 => 123, 1 => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 'id', 'name' ); * // or * $users = PMA_DBI_fetch_result( $sql, 0, 1 ); * // produces * // $users['123'] = 'John Doe' * * $sql = 'SELECT `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql ); * // produces * // $users[] = 'John Doe' * </code> * * @uses    is_string() * @uses    is_int() * @uses    PMA_DBI_try_query() * @uses    PMA_DBI_num_rows() * @uses    PMA_DBI_num_fields() * @uses    PMA_DBI_fetch_row() * @uses    PMA_DBI_fetch_assoc() * @uses    PMA_DBI_free_result() * @param   string|mysql_result $result query or mysql result * @param   string|integer      $key    field-name or offset *                                      used as key for array * @param   string|integer      $value  value-name or offset *                                      used as value for array * @param   resource            $link   mysql link * @param   mixed               $options * @return  array               resultrows or values indexed by $key */function PMA_DBI_fetch_result( $result, $key = null, $value = null,    $link = null, $options = 0 ){    $resultrows = array();    if ( is_string($result) ) {        $result = PMA_DBI_try_query($result, $link, $options);    }    // return empty array if result is empty or false    if ( ! $result ) {        return $resultrows;    }    $fetch_function = 'PMA_DBI_fetch_assoc';    // no nested array if only one field is in result    if ( null === $key && 1 === PMA_DBI_num_fields($result) ) {        $value = 0;        $fetch_function = 'PMA_DBI_fetch_row';    }    // if $key is an integer use non associative mysql fetch function    if ( is_int($key) ) {        $fetch_function = 'PMA_DBI_fetch_row';    }    if ( null === $key && null === $value ) {        while ( $row = $fetch_function($result) ) {            $resultrows[] = $row;        }    } elseif ( null === $key ) {        while ( $row = $fetch_function($result) ) {            $resultrows[] = $row[$value];        }    } elseif ( null === $value ) {        if ( is_array($key) ) {            while ( $row = $fetch_function($result) ) {                $result_target =& $resultrows;                foreach ( $key as $key_index ) {                    if ( ! isset( $result_target[$row[$key_index]] ) ) {                        $result_target[$row[$key_index]] = array();                    }                    $result_target =& $result_target[$row[$key_index]];                }                $result_target = $row;            }        } else {            while ( $row = $fetch_function($result) ) {                $resultrows[$row[$key]] = $row;            }        }    } else {        if ( is_array($key) ) {            while ( $row = $fetch_function($result) ) {                $result_target =& $resultrows;                foreach ( $key as $key_index ) {                    if ( ! isset( $result_target[$row[$key_index]] ) ) {                        $result_target[$row[$key_index]] = array();                    }                    $result_target =& $result_target[$row[$key_index]];                }                $result_target = $row[$value];            }        } else {            while ( $row = $fetch_function($result) ) {                $resultrows[$row[$key]] = $row[$value];            }        }    }    PMA_DBI_free_result($result);    return $resultrows;}/** * return default table engine for given database * * @return  string  default table engine */function PMA_DBI_get_default_engine(){    if ( PMA_MYSQL_INT_VERSION > 50002 ) {        return PMA_DBI_fetch_value( 'SHOW VARIABLES LIKE \'storage_engine\';', 0, 1 );    } else {        return PMA_DBI_fetch_value( 'SHOW VARIABLES LIKE \'table_type\';', 0, 1 );    }}?>

⌨️ 快捷键说明

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