当前位置: 首页>>代码示例>>PHP>>正文


PHP PMA_Util::escapeMysqlWildcards方法代码示例

本文整理汇总了PHP中PMA_Util::escapeMysqlWildcards方法的典型用法代码示例。如果您正苦于以下问题:PHP PMA_Util::escapeMysqlWildcards方法的具体用法?PHP PMA_Util::escapeMysqlWildcards怎么用?PHP PMA_Util::escapeMysqlWildcards使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PMA_Util的用法示例。


在下文中一共展示了PMA_Util::escapeMysqlWildcards方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: PMA_addUserAndCreateDatabase

/**
 * Prepares queries for adding users and
 * also create database and return query and message
 *
 * @param boolean $_error         whether user create or not
 * @param string  $real_sql_query SQL query for add a user
 * @param string  $sql_query      SQL query to be displayed
 * @param string  $username       username
 * @param string  $hostname       host name
 * @param string  $dbname         database name
 *
 * @return array  $sql_query, $message
 */
function PMA_addUserAndCreateDatabase($_error, $real_sql_query, $sql_query, $username, $hostname, $dbname)
{
    if ($_error || !empty($real_sql_query) && !$GLOBALS['dbi']->tryQuery($real_sql_query)) {
        $_REQUEST['createdb-1'] = $_REQUEST['createdb-2'] = $_REQUEST['createdb-3'] = null;
        $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
    } else {
        $message = PMA_Message::success(__('You have added a new user.'));
    }
    if (isset($_REQUEST['createdb-1'])) {
        // Create database with same name and grant all privileges
        $q = 'CREATE DATABASE IF NOT EXISTS ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($username)) . ';';
        $sql_query .= $q;
        if (!$GLOBALS['dbi']->tryQuery($q)) {
            $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
        }
        /**
         * Reload the navigation
         */
        $GLOBALS['reload'] = true;
        $GLOBALS['db'] = $username;
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($username))) . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!$GLOBALS['dbi']->tryQuery($q)) {
            $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
        }
    }
    if (isset($_REQUEST['createdb-2'])) {
        // Grant all privileges on wildcard name (username\_%)
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($username) . '\\_%') . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!$GLOBALS['dbi']->tryQuery($q)) {
            $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
        }
    }
    if (isset($_REQUEST['createdb-3'])) {
        // Grant all privileges on the specified database to the new user
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($dbname)) . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!$GLOBALS['dbi']->tryQuery($q)) {
            $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
        }
    }
    return array($sql_query, $message);
}
开发者ID:siddhantsomani,项目名称:phpmyadmin,代码行数:57,代码来源:server_privileges.lib.php

示例2: getTablesFull

 /**
  * returns array of all tables in given db or dbs
  * this function expects unquoted names:
  * RIGHT: my_database
  * WRONG: `my_database`
  * WRONG: my\_database
  * if $tbl_is_group is true, $table is used as filter for table names
  *
  * <code>
  * $GLOBALS['dbi']->getTablesFull('my_database');
  * $GLOBALS['dbi']->getTablesFull('my_database', 'my_table'));
  * $GLOBALS['dbi']->getTablesFull('my_database', 'my_tables_', true));
  * </code>
  *
  * @param string          $database     database
  * @param string|bool     $table        table or false
  * @param boolean         $tbl_is_group $table is a table group
  * @param mixed           $link         mysql link
  * @param integer         $limit_offset zero-based offset for the count
  * @param boolean|integer $limit_count  number of tables to return
  * @param string          $sort_by      table attribute to sort by
  * @param string          $sort_order   direction to sort (ASC or DESC)
  * @param string          $tble_type    whether table or view
  *
  * @todo    move into PMA_Table
  *
  * @return array           list of tables in given db(s)
  */
 public function getTablesFull($database, $table = false, $tbl_is_group = false, $link = null, $limit_offset = 0, $limit_count = false, $sort_by = 'Name', $sort_order = 'ASC', $tble_type = null)
 {
     if (true === $limit_count) {
         $limit_count = $GLOBALS['cfg']['MaxTableList'];
     }
     // prepare and check parameters
     if (!is_array($database)) {
         $databases = array($database);
     } else {
         $databases = $database;
     }
     $tables = array();
     // get table information from information_schema
     if ($table) {
         if (true === $tbl_is_group) {
             $sql_where_table = 'AND t.`TABLE_NAME` LIKE \'' . PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($table)) . '%\'';
         } else {
             $sql_where_table = 'AND t.`TABLE_NAME` = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
         }
     } else {
         $sql_where_table = '';
     }
     if ($tble_type) {
         if ($tble_type == 'view') {
             if (PMA_DRIZZLE) {
                 $sql_where_table .= " AND t.`TABLE_TYPE` != 'BASE'";
             } else {
                 $sql_where_table .= " AND t.`TABLE_TYPE` != 'BASE TABLE'";
             }
         } else {
             if ($tble_type == 'table') {
                 if (PMA_DRIZZLE) {
                     $sql_where_table .= " AND t.`TABLE_TYPE` = 'BASE'";
                 } else {
                     $sql_where_table .= " AND t.`TABLE_TYPE` = 'BASE TABLE'";
                 }
             }
         }
     }
     // for PMA bc:
     // `SCHEMA_FIELD_NAME` AS `SHOW_TABLE_STATUS_FIELD_NAME`
     //
     // on non-Windows servers,
     // added BINARY in the WHERE clause to force a case sensitive
     // comparison (if we are looking for the db Aa we don't want
     // to find the db aa)
     $this_databases = array_map('PMA_Util::sqlAddSlashes', $databases);
     if (PMA_DRIZZLE) {
         $engine_info = PMA_Util::cacheGet('drizzle_engines', true);
         $stats_join = "LEFT JOIN (SELECT 0 NUM_ROWS) AS stat ON false";
         if (isset($engine_info['InnoDB']) && $engine_info['InnoDB']['module_library'] == 'innobase') {
             $stats_join = "LEFT JOIN data_dictionary.INNODB_SYS_TABLESTATS" . " stat ON (t.ENGINE = 'InnoDB' AND stat.NAME" . " = (t.TABLE_SCHEMA || '/') || t.TABLE_NAME)";
         }
         // data_dictionary.table_cache may not contain any data
         // for some tables, it's just a table cache
         // auto_increment == 0 is cast to NULL because currently
         // (2011.03.13 GA)
         // Drizzle doesn't provide correct value
         $sql = "\n                SELECT t.*,\n                    t.TABLE_SCHEMA        AS `Db`,\n                    t.TABLE_NAME          AS `Name`,\n                    t.TABLE_TYPE          AS `TABLE_TYPE`,\n                    t.ENGINE              AS `Engine`,\n                    t.ENGINE              AS `Type`,\n                    t.TABLE_VERSION       AS `Version`,-- VERSION\n                    t.ROW_FORMAT          AS `Row_format`,\n                    coalesce(tc.ROWS, stat.NUM_ROWS)\n                                          AS `Rows`,-- TABLE_ROWS,\n                    coalesce(tc.ROWS, stat.NUM_ROWS)\n                                          AS `TABLE_ROWS`,\n                    tc.AVG_ROW_LENGTH     AS `Avg_row_length`, -- AVG_ROW_LENGTH\n                    tc.TABLE_SIZE         AS `Data_length`, -- DATA_LENGTH\n                    NULL                  AS `Max_data_length`, -- MAX_DATA_LENGTH\n                    NULL                  AS `Index_length`, -- INDEX_LENGTH\n                    NULL                  AS `Data_free`, -- DATA_FREE\n                    nullif(t.AUTO_INCREMENT, 0)\n                                          AS `Auto_increment`,\n                    t.TABLE_CREATION_TIME AS `Create_time`, -- CREATE_TIME\n                    t.TABLE_UPDATE_TIME   AS `Update_time`, -- UPDATE_TIME\n                    NULL                  AS `Check_time`, -- CHECK_TIME\n                    t.TABLE_COLLATION     AS `Collation`,\n                    NULL                  AS `Checksum`, -- CHECKSUM\n                    NULL                  AS `Create_options`, -- CREATE_OPTIONS\n                    t.TABLE_COMMENT       AS `Comment`\n                FROM data_dictionary.TABLES t\n                    LEFT JOIN data_dictionary.TABLE_CACHE tc\n                        ON tc.TABLE_SCHEMA = t.TABLE_SCHEMA AND tc.TABLE_NAME\n                        = t.TABLE_NAME\n                    {$stats_join}\n                WHERE t.TABLE_SCHEMA IN ('" . implode("', '", $this_databases) . "')\n                    " . $sql_where_table;
     } else {
         $sql = '
             SELECT *,
                 `TABLE_SCHEMA`       AS `Db`,
                 `TABLE_NAME`         AS `Name`,
                 `TABLE_TYPE`         AS `TABLE_TYPE`,
                 `ENGINE`             AS `Engine`,
                 `ENGINE`             AS `Type`,
                 `VERSION`            AS `Version`,
                 `ROW_FORMAT`         AS `Row_format`,
                 `TABLE_ROWS`         AS `Rows`,
                 `AVG_ROW_LENGTH`     AS `Avg_row_length`,
                 `DATA_LENGTH`        AS `Data_length`,
//.........这里部分代码省略.........
开发者ID:lcylp,项目名称:wamp,代码行数:101,代码来源:DatabaseInterface.class.php

示例3: array

/**
 * @global bool whether selected db is information_schema
 */
$db_is_information_schema = false;
if (PMA_is_system_schema($db)) {
    $is_show_stats = false;
    $db_is_information_schema = true;
}
/**
 * @global array information about tables in db
 */
$tables = array();
// When used in Nested table group mode,
// only show tables matching the given groupname
if (PMA_isValid($_REQUEST['tbl_group'])) {
    $tbl_group_sql = ' LIKE "' . PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group']) . '%"';
} else {
    $tbl_group_sql = '';
}
$tooltip_truename = array();
$tooltip_aliasname = array();
// Special speedup for newer MySQL Versions (in 4.0 format changed)
if (true === $cfg['SkipLockedTables']) {
    $db_info_result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_Util::backquote($db) . ';');
    // Blending out tables in use
    if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
        while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
            // if in use memorize tablename
            if (preg_match('@in_use=[1-9]+@i', $tmp[1])) {
                $sot_cache[$tmp[0]] = true;
            }
开发者ID:fanscky,项目名称:HTPMS,代码行数:31,代码来源:db_info.inc.php

示例4: getTablesFull


//.........这里部分代码省略.........
                 uksort($one_database_tables, 'strnatcasecmp');
                 if ($sort_order == 'DESC') {
                     $one_database_tables = array_reverse($one_database_tables);
                 }
                 $tables[$one_database_name] = $one_database_tables;
             }
         } else {
             if ($sort_by == 'Data_length') {
                 // Size = Data_length + Index_length
                 foreach ($tables as $one_database_name => $one_database_tables) {
                     uasort($one_database_tables, function ($a, $b) {
                         $aLength = $a['Data_length'] + $a['Index_length'];
                         $bLength = $b['Data_length'] + $b['Index_length'];
                         return $aLength == $bLength ? 0 : $aLength < $bLength ? -1 : 1;
                     });
                     if ($sort_order == 'DESC') {
                         $one_database_tables = array_reverse($one_database_tables);
                     }
                     $tables[$one_database_name] = $one_database_tables;
                 }
             }
         }
     }
     // end (get information from table schema)
     // If permissions are wrong on even one database directory,
     // information_schema does not return any table info for any database
     // this is why we fall back to SHOW TABLE STATUS even for MySQL >= 50002
     if (empty($tables) && !PMA_DRIZZLE) {
         foreach ($databases as $each_database) {
             if ($table || true === $tbl_is_group || !empty($table_type)) {
                 $sql = 'SHOW TABLE STATUS FROM ' . PMA_Util::backquote($each_database) . ' WHERE';
                 $needAnd = false;
                 if ($table || true === $tbl_is_group) {
                     $sql .= " `Name` LIKE '" . PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($table, true)) . "%'";
                     $needAnd = true;
                 }
                 if (!empty($table_type)) {
                     if ($needAnd) {
                         $sql .= " AND";
                     }
                     if ($table_type == 'view') {
                         $sql .= " `Comment` = 'VIEW'";
                     } else {
                         if ($table_type == 'table') {
                             $sql .= " `Comment` != 'VIEW'";
                         }
                     }
                 }
             } else {
                 $sql = 'SHOW TABLE STATUS FROM ' . PMA_Util::backquote($each_database);
             }
             $useStatusCache = false;
             if (extension_loaded('apc') && isset($GLOBALS['cfg']['Server']['StatusCacheDatabases']) && !empty($GLOBALS['cfg']['Server']['StatusCacheLifetime'])) {
                 $statusCacheDatabases = (array) $GLOBALS['cfg']['Server']['StatusCacheDatabases'];
                 if (in_array($each_database, $statusCacheDatabases)) {
                     $useStatusCache = true;
                 }
             }
             $each_tables = null;
             if ($useStatusCache) {
                 $cacheKey = 'phpMyAdmin_tableStatus_' . sha1($GLOBALS['cfg']['Server']['host'] . '_' . $sql);
                 $each_tables = apc_fetch($cacheKey);
             }
             if (!$each_tables) {
                 $each_tables = $this->fetchResult($sql, 'Name', null, $link);
             }
开发者ID:FuhrerMalkovich,项目名称:Blogpost,代码行数:67,代码来源:DatabaseInterface.class.php

示例5: getTablesWhenOpen

 /**
  * Gets the list of tables in the current db, taking into account
  * that they might be "in use"
  *
  * @param string $db             database name
  * @param object $db_info_result result set
  *
  * @return array $tables list of tables
  *
  */
 public function getTablesWhenOpen($db, $db_info_result)
 {
     $tables = array();
     while ($tmp = $GLOBALS['dbi']->fetchAssoc($db_info_result)) {
         // if in use, memorize table name
         if ($tmp['In_use'] > 0) {
             $sot_cache[$tmp['Table']] = true;
         }
     }
     $GLOBALS['dbi']->freeResult($db_info_result);
     // is there at least one "in use" table?
     if (isset($sot_cache)) {
         $db_info_result = false;
         $tblGroupSql = "";
         $whereAdded = false;
         if (PMA_isValid($_REQUEST['tbl_group'])) {
             $group = PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group']);
             $groupWithSeparator = PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group'] . $GLOBALS['cfg']['NavigationTreeTableSeparator']);
             $tblGroupSql .= " WHERE (" . PMA_Util::backquote('Tables_in_' . $db) . " LIKE '" . $groupWithSeparator . "%'" . " OR " . PMA_Util::backquote('Tables_in_' . $db) . " LIKE '" . $group . "')";
             $whereAdded = true;
         }
         if (PMA_isValid($_REQUEST['tbl_type'], array('table', 'view'))) {
             $tblGroupSql .= $whereAdded ? " AND" : " WHERE";
             if ($_REQUEST['tbl_type'] == 'view') {
                 $tblGroupSql .= " `Table_type` != 'BASE TABLE'";
             } else {
                 $tblGroupSql .= " `Table_type` = 'BASE TABLE'";
             }
         }
         $db_info_result = $GLOBALS['dbi']->query('SHOW FULL TABLES FROM ' . PMA_Util::backquote($db) . $tblGroupSql, null, PMA_DatabaseInterface::QUERY_STORE);
         unset($tblGroupSql, $whereAdded);
         if ($db_info_result && $GLOBALS['dbi']->numRows($db_info_result) > 0) {
             while ($tmp = $GLOBALS['dbi']->fetchRow($db_info_result)) {
                 if (!isset($sot_cache[$tmp[0]])) {
                     $sts_result = $GLOBALS['dbi']->query("SHOW TABLE STATUS FROM " . PMA_Util::backquote($db) . " LIKE '" . PMA_Util::sqlAddSlashes($tmp[0], true) . "';");
                     $sts_tmp = $GLOBALS['dbi']->fetchAssoc($sts_result);
                     $GLOBALS['dbi']->freeResult($sts_result);
                     unset($sts_result);
                     $tableArray = $GLOBALS['dbi']->copyTableProperties(array($sts_tmp), $db);
                     $tables[$sts_tmp['Name']] = $tableArray[0];
                 } else {
                     // table in use
                     $tables[$tmp[0]] = array('TABLE_NAME' => $tmp[0], 'ENGINE' => '', 'TABLE_TYPE' => '', 'TABLE_ROWS' => 0);
                 }
             }
             // end while
             if ($GLOBALS['cfg']['NaturalOrder']) {
                 uksort($tables, 'strnatcasecmp');
             }
         } elseif ($db_info_result) {
             $GLOBALS['dbi']->freeResult($db_info_result);
         }
         unset($sot_cache);
     }
     return $tables;
 }
开发者ID:altesien,项目名称:FinalProject,代码行数:66,代码来源:Util.class.php

示例6: getTablesFull


//.........这里部分代码省略.........
         foreach ($tables as $one_database_name => $one_database_tables) {
             uksort($one_database_tables, 'strnatcasecmp');
             if ($sort_order == 'DESC') {
                 $one_database_tables = array_reverse($one_database_tables);
             }
             $tables[$one_database_name] = $one_database_tables;
         }
     } else {
         if ($sort_by == 'Data_length') {
             // Size = Data_length + Index_length
             foreach ($tables as $one_database_name => $one_database_tables) {
                 uasort($one_database_tables, function ($a, $b) {
                     $aLength = $a['Data_length'] + $a['Index_length'];
                     $bLength = $b['Data_length'] + $b['Index_length'];
                     return $aLength == $bLength ? 0 : $aLength < $bLength ? -1 : 1;
                 });
                 if ($sort_order == 'DESC') {
                     $one_database_tables = array_reverse($one_database_tables);
                 }
                 $tables[$one_database_name] = $one_database_tables;
             }
         }
     }
     // end (get information from table schema)
     // If permissions are wrong on even one database directory,
     // information_schema does not return any table info for any database
     // this is why we fall back to SHOW TABLE STATUS even for MySQL >= 50002
     if (empty($tables) && !PMA_DRIZZLE) {
         foreach ($databases as $each_database) {
             if ($table || true === $tbl_is_group || $tble_type) {
                 $sql = 'SHOW TABLE STATUS FROM ' . PMA_Util::backquote($each_database) . ' WHERE';
                 $needAnd = false;
                 if ($table || true === $tbl_is_group) {
                     $sql .= " `Name` LIKE '" . PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($table, true)) . "%'";
                     $needAnd = true;
                 }
                 if ($tble_type) {
                     if ($needAnd) {
                         $sql .= " AND";
                     }
                     if ($tble_type == 'view') {
                         $sql .= " `Comment` = 'VIEW'";
                     } else {
                         if ($tble_type == 'table') {
                             $sql .= " `Comment` != 'VIEW'";
                         }
                     }
                 }
             } else {
                 $sql = 'SHOW TABLE STATUS FROM ' . PMA_Util::backquote($each_database);
             }
             $useStatusCache = false;
             if (extension_loaded('apc') && isset($GLOBALS['cfg']['Server']['StatusCacheDatabases']) && !empty($GLOBALS['cfg']['Server']['StatusCacheLifetime'])) {
                 $statusCacheDatabases = (array) $GLOBALS['cfg']['Server']['StatusCacheDatabases'];
                 if (in_array($each_database, $statusCacheDatabases)) {
                     $useStatusCache = true;
                 }
             }
             $each_tables = null;
             if ($useStatusCache) {
                 $cacheKey = 'phpMyAdmin_tableStatus_' . sha1($GLOBALS['cfg']['Server']['host'] . '_' . $sql);
                 $each_tables = apc_fetch($cacheKey);
             }
             if (!$each_tables) {
                 $each_tables = $this->fetchResult($sql, 'Name', null, $link);
             }
开发者ID:minggLu,项目名称:openemr,代码行数:67,代码来源:DatabaseInterface.class.php

示例7: while

 // Blending out tables in use
 if ($db_info_result && $GLOBALS['dbi']->numRows($db_info_result) > 0) {
     while ($tmp = $GLOBALS['dbi']->fetchAssoc($db_info_result)) {
         // if in use, memorize table name
         if ($tmp['In_use'] > 0) {
             $sot_cache[$tmp['Table']] = true;
         }
     }
     $GLOBALS['dbi']->freeResult($db_info_result);
     if (isset($sot_cache)) {
         $db_info_result = false;
         $tblGroupSql = "";
         $whereAdded = false;
         if (PMA_isValid($_REQUEST['tbl_group'])) {
             $group = PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group']);
             $groupWithSeparator = PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group'] . $GLOBALS['cfg']['NavigationTreeTableSeparator']);
             $tblGroupSql .= " WHERE (" . PMA_Util::backquote('Tables_in_' . $db) . " LIKE '" . $groupWithSeparator . "%'" . " OR " . PMA_Util::backquote('Tables_in_' . $db) . " LIKE '" . $group . "')";
             $whereAdded = true;
         }
         if (PMA_isValid($_REQUEST['tbl_type'], array('table', 'view'))) {
             $tblGroupSql .= $whereAdded ? " AND" : " WHERE";
             if ($_REQUEST['tbl_type'] == 'view') {
                 $tblGroupSql .= " `Table_type` != 'BASE TABLE'";
             } else {
                 $tblGroupSql .= " `Table_type` = 'BASE TABLE'";
             }
         }
         $db_info_result = $GLOBALS['dbi']->query('SHOW FULL TABLES FROM ' . PMA_Util::backquote($db) . $tblGroupSql, null, PMA_DatabaseInterface::QUERY_STORE);
         unset($tblGroupSql, $whereAdded);
         if ($db_info_result && $GLOBALS['dbi']->numRows($db_info_result) > 0) {
             while ($tmp = $GLOBALS['dbi']->fetchRow($db_info_result)) {
开发者ID:mercysmart,项目名称:naikelas,代码行数:31,代码来源:db_info.inc.php

示例8: testEscape

 /**
  * PMA_Util::escapeMysqlWildcards tests
  *
  * @param string $a String to escape
  * @param string $b Expected value
  *
  * @return void
  *
  * @dataProvider escapeDataProvider
  */
 public function testEscape($a, $b)
 {
     $this->assertEquals($a, PMA_Util::escapeMysqlWildcards($b));
 }
开发者ID:hewenhao2008,项目名称:phpmyadmin,代码行数:14,代码来源:PMA_escapeMySqlWildcards_test.php

示例9: PMA_addUserAndCreateDatabase

/**
 * Prepares queries for adding users and
 * also create database and return query and message
 *
 * @param boolean $_error         whether user create or not
 * @param string  $real_sql_query SQL query for add a user
 * @param string  $sql_query      SQL query to be displayed
 * @param string  $username       username
 * @param string  $hostname       host name
 *
 * @return array  $sql_query, $message
 */
function PMA_addUserAndCreateDatabase($_error, $real_sql_query, $sql_query, $username, $hostname)
{
    if ($_error || !PMA_DBI_try_query($real_sql_query)) {
        $_REQUEST['createdb-1'] = $_REQUEST['createdb-2'] = $_REQUEST['createdb-3'] = false;
        $message = PMA_Message::rawError(PMA_DBI_getError());
    } else {
        $message = PMA_Message::success(__('You have added a new user.'));
    }
    if (isset($_REQUEST['createdb-1'])) {
        // Create database with same name and grant all privileges
        $q = 'CREATE DATABASE IF NOT EXISTS ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($username)) . ';';
        $sql_query .= $q;
        if (!PMA_DBI_try_query($q)) {
            $message = PMA_Message::rawError(PMA_DBI_getError());
        }
        /**
         * If we are not in an Ajax request, we can't reload navigation now
         */
        if ($GLOBALS['is_ajax_request'] != true) {
            // this is needed in case tracking is on:
            $GLOBALS['db'] = $username;
            $GLOBALS['reload'] = true;
            echo PMA_Util::getReloadNavigationScript();
        }
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($username))) . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!PMA_DBI_try_query($q)) {
            $message = PMA_Message::rawError(PMA_DBI_getError());
        }
    }
    if (isset($_REQUEST['createdb-2'])) {
        // Grant all privileges on wildcard name (username\_%)
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($username) . '\\_%') . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!PMA_DBI_try_query($q)) {
            $message = PMA_Message::rawError(PMA_DBI_getError());
        }
    }
    if (isset($_REQUEST['createdb-3'])) {
        // Grant all privileges on the specified database to the new user
        $q = 'GRANT ALL PRIVILEGES ON ' . PMA_Util::backquote(PMA_Util::sqlAddSlashes($dbname)) . '.* TO \'' . PMA_Util::sqlAddSlashes($username) . '\'@\'' . PMA_Util::sqlAddSlashes($hostname) . '\';';
        $sql_query .= $q;
        if (!PMA_DBI_try_query($q)) {
            $message = PMA_Message::rawError(PMA_DBI_getError());
        }
    }
    return array($sql_query, $message);
}
开发者ID:nhodges,项目名称:phpmyadmin,代码行数:60,代码来源:server_privileges.lib.php

示例10: array

/**
 * @global bool whether selected db is information_schema
 */
$db_is_information_schema = false;
if (PMA_is_system_schema($db)) {
    $is_show_stats = false;
    $db_is_information_schema = true;
}
/**
 * @global array information about tables in db
 */
$tables = array();
// When used in Nested table group mode,
// only show tables matching the given groupname
if (PMA_isValid($tbl_group)) {
    $tbl_group_sql = ' LIKE "' . PMA_Util::escapeMysqlWildcards($tbl_group) . '%"';
} else {
    $tbl_group_sql = '';
}
$tooltip_truename = array();
$tooltip_aliasname = array();
// Special speedup for newer MySQL Versions (in 4.0 format changed)
if (true === $cfg['SkipLockedTables']) {
    $db_info_result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_Util::backquote($db) . ';');
    // Blending out tables in use
    if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
        while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
            // if in use memorize tablename
            if (preg_match('@in_use=[1-9]+@i', $tmp[1])) {
                $sot_cache[$tmp[0]] = true;
            }
开发者ID:GDantas05,项目名称:WorkSeries,代码行数:31,代码来源:db_info.inc.php

示例11: while

 $db_info_result = $GLOBALS['dbi']->query('SHOW OPEN TABLES FROM ' . PMA_Util::backquote($db) . ';');
 // Blending out tables in use
 if ($db_info_result && $GLOBALS['dbi']->numRows($db_info_result) > 0) {
     while ($tmp = $GLOBALS['dbi']->fetchAssoc($db_info_result)) {
         // if in use, memorize table name
         if ($tmp['In_use'] > 0) {
             $sot_cache[$tmp['Table']] = true;
         }
     }
     $GLOBALS['dbi']->freeResult($db_info_result);
     if (isset($sot_cache)) {
         $db_info_result = false;
         $tblGroupSql = "";
         $whereAdded = false;
         if (PMA_isValid($_REQUEST['tbl_group'])) {
             $tblGroupSql .= " WHERE " . PMA_Util::backquote('Tables_in_' . $db) . " LIKE '" . PMA_Util::escapeMysqlWildcards($_REQUEST['tbl_group']) . "%'";
             $whereAdded = true;
         }
         if (PMA_isValid($_REQUEST['tbl_type'], array('table', 'view'))) {
             $tblGroupSql .= $whereAdded ? " AND" : " WHERE";
             if ($_REQUEST['tbl_type'] == 'view') {
                 $tblGroupSql .= " `Table_type` != 'BASE TABLE'";
             } else {
                 $tblGroupSql .= " `Table_type` = 'BASE TABLE'";
             }
         }
         $db_info_result = $GLOBALS['dbi']->query('SHOW FULL TABLES FROM ' . PMA_Util::backquote($db) . $tblGroupSql, null, PMA_DatabaseInterface::QUERY_STORE);
         unset($tblGroupSql, $whereAdded);
         if ($db_info_result && $GLOBALS['dbi']->numRows($db_info_result) > 0) {
             while ($tmp = $GLOBALS['dbi']->fetchRow($db_info_result)) {
                 if (!isset($sot_cache[$tmp[0]])) {
开发者ID:SnowySailor,项目名称:CodeStuff,代码行数:31,代码来源:db_info.inc.php

示例12: _getTableCondition

 /**
  * returns a segment of the SQL WHERE clause regarding table name and type
  *
  * @param string|bool $table        table or false
  * @param boolean     $tbl_is_group $table is a table group
  * @param string      $table_type   whether table or view
  *
  * @return string a segment of the WHERE clause
  */
 private function _getTableCondition($table, $tbl_is_group, $table_type)
 {
     // get table information from information_schema
     if ($table && is_string($table)) {
         if (true === $tbl_is_group) {
             $sql_where_table = 'AND t.`TABLE_NAME` LIKE \'' . PMA_Util::escapeMysqlWildcards(PMA_Util::sqlAddSlashes($table)) . '%\'';
         } else {
             $sql_where_table = 'AND t.`TABLE_NAME` = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
         }
     } else {
         $sql_where_table = '';
     }
     if ($table_type) {
         if ($table_type == 'view') {
             if (PMA_DRIZZLE) {
                 $sql_where_table .= " AND t.`TABLE_TYPE` != 'BASE'";
             } else {
                 $sql_where_table .= " AND t.`TABLE_TYPE` != 'BASE TABLE'";
             }
         } else {
             if ($table_type == 'table') {
                 if (PMA_DRIZZLE) {
                     $sql_where_table .= " AND t.`TABLE_TYPE` = 'BASE'";
                 } else {
                     $sql_where_table .= " AND t.`TABLE_TYPE` = 'BASE TABLE'";
                 }
             }
         }
     }
     return $sql_where_table;
 }
开发者ID:FilipeRamosFernandes,项目名称:phpmyadmin,代码行数:40,代码来源:DatabaseInterface.class.php


注:本文中的PMA_Util::escapeMysqlWildcards方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。