123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?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'];
- }
- }
- ?>
|