Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: MAINT_3_4_7
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 130 lines (107 sloc) 4.06 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
*
* @package phpMyAdmin
*/

/**
* Gets some core libraries
*/
require_once './libraries/common.inc.php';
$GLOBALS['js_include'][] = 'functions.js';
$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.custom.js';

require_once './libraries/mysql_charsets.lib.php';
require './libraries/replication.inc.php';
require './libraries/build_html_for_db.lib.php';

PMA_checkParameters(array('new_db'));

/**
* Defines the url to return to in case of error in a sql statement
*/
$err_url = 'main.php?' . PMA_generate_common_url();

/**
* Builds and executes the db creation sql query
*/
$sql_query = 'CREATE DATABASE ' . PMA_backquote($new_db);
if (!empty($db_collation)) {
    list($db_charset) = explode('_', $db_collation);
    if (in_array($db_charset, $mysql_charsets) && in_array($db_collation, $mysql_collations[$db_charset])) {
        $sql_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
    }
    $db_collation_for_ajax = $db_collation;
    unset($db_charset, $db_collation);
}
$sql_query .= ';';

$result = PMA_DBI_try_query($sql_query);

if (! $result) {
    $message = PMA_Message::rawError(PMA_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_ajaxResponse}
*/
    if($GLOBALS['is_ajax_request'] == true) {
        PMA_ajaxResponse($message, FALSE);
    }

    require_once './libraries/header.inc.php';
    require_once './main.php';
} else {
    $message = PMA_Message::success(__('Database %1$s has been created.'));
    $message->addParam($new_db);
    $GLOBALS['db'] = $new_db;

    /**
* If in an Ajax request, build the output and send it
*/
    if($GLOBALS['is_ajax_request'] == true) {

        /**
* String containing the SQL Query formatted in pretty HTML
* @global array $GLOBALS['extra_data']
* @name $extra_data
*/
        $extra_data['sql_query'] = PMA_showMessage(NULL, $sql_query, 'success');

        //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_generate_common_url} to generate the links
* @global array $GLOBALS['db_url_params']
* @name $db_url_params
*/
        $db_url_params['db'] = $new_db;

        $is_superuser = PMA_isSuperuser();
        $column_order = PMA_getColumnOrder();
        $url_query = PMA_generate_common_url($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' => $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' => $new_db
            );
        }

        list($column_order, $generated_html) = PMA_buildHtmlForDb($current, $is_superuser, (isset($checkall) ? $checkall : ''), $url_query, $column_order, $replication_types, $replication_info);
        $new_db_string .= $generated_html;

        $new_db_string .= '</tr>';

        $extra_data['new_db_string'] = $new_db_string;

        PMA_ajaxResponse($message, true, $extra_data);
    }

    require_once './libraries/header.inc.php';
    require_once './' . $cfg['DefaultTabDatabase'];
}
?>
Something went wrong with that request. Please try again.