Viewing file: db_create.php (4.08 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Database creating page * * @package PhpMyAdmin */
/** * Gets some core libraries */ require_once 'libraries/common.inc.php';
require_once 'libraries/mysql_charsets.inc.php'; if (! PMA_DRIZZLE) { include_once 'libraries/replication.inc.php'; } require 'libraries/build_html_for_db.lib.php';
/** * Defines the url to return to in case of error in a sql statement */ $err_url = 'index.php?' . PMA_URL_getCommon();
/** * Builds and executes the db creation sql query */ $sql_query = 'CREATE DATABASE ' . PMA_Util::backquote($_POST['new_db']); if (! empty($_POST['db_collation'])) { list($db_charset) = explode('_', $_POST['db_collation']); if (in_array($db_charset, $mysql_charsets) && in_array($_POST['db_collation'], $mysql_collations[$db_charset]) ) { $sql_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($_POST['db_collation']); } $db_collation_for_ajax = $_POST['db_collation']; unset($db_charset); } $sql_query .= ';';
$result = $GLOBALS['dbi']->tryQuery($sql_query);
if (! $result) { $message = PMA_Message::rawError($GLOBALS['dbi']->getError()); // avoid displaying the not-created db name in header or navi panel $GLOBALS['db'] = ''; $GLOBALS['table'] = '';
/** * If in an Ajax request, just display the message with {@link PMA_Response} */ if ($GLOBALS['is_ajax_request'] == true) { $response = PMA_Response::getInstance(); $response->isSuccess(false); $response->addJSON('message', $message); } else { include_once 'index.php'; } } else { $message = PMA_Message::success(__('Database %1$s has been created.')); $message->addParam($_POST['new_db']); $GLOBALS['db'] = $_POST['new_db'];
/** * If in an Ajax request, build the output and send it */ if ($GLOBALS['is_ajax_request'] == true) { //Construct the html for the new database, so that it can be appended to // the list of databases on server_databases.php
/** * Build the array to be passed to {@link PMA_URL_getCommon} * to generate the links * * @global array $GLOBALS['db_url_params'] * @name $db_url_params */ $db_url_params['db'] = $_POST['new_db'];
$is_superuser = $GLOBALS['dbi']->isSuperuser(); $column_order = PMA_getColumnOrder(); $url_query = PMA_URL_getCommon($_POST['new_db']);
/** * String that will contain the output HTML * @name $new_db_string */ $new_db_string = '<tr>';
if (empty($db_collation_for_ajax)) { $db_collation_for_ajax = PMA_getServerCollation(); }
// $dbstats comes from the create table dialog if (! empty($dbstats)) { $current = array( 'SCHEMA_NAME' => $_POST['new_db'], 'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax, 'SCHEMA_TABLES' => '0', 'SCHEMA_TABLE_ROWS' => '0', 'SCHEMA_DATA_LENGTH' => '0', 'SCHEMA_MAX_DATA_LENGTH' => '0', 'SCHEMA_INDEX_LENGTH' => '0', 'SCHEMA_LENGTH' => '0', 'SCHEMA_DATA_FREE' => '0' ); } else { $current = array( 'SCHEMA_NAME' => $_POST['new_db'], 'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax ); }
list($column_order, $generated_html) = PMA_buildHtmlForDb( $current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info ); $new_db_string .= $generated_html;
$new_db_string .= '</tr>';
$response = PMA_Response::getInstance(); $response->addJSON('message', $message); $response->addJSON('new_db_string', $new_db_string); $response->addJSON( 'sql_query', PMA_Util::getMessage( null, $sql_query, 'success' ) ); } else { include_once '' . $cfg['DefaultTabDatabase']; } } ?>
|