Ejemplo n.º 1
0
/**
 * Sets up the database tables
 *
 * @return  boolean                 True if successful
 *
 */
function INST_createDatabaseStructures()
{
    global $_CONF, $_TABLES, $_DB, $_DB_dbms, $_DB_host, $_DB_user, $_DB_pass, $site_url, $use_innodb;
    $_DB->setDisplayError(true);
    // Because the create table syntax can vary from dbms-to-dbms we are
    // leaving that up to each database driver (e.g. mysql.class.php,
    // postgresql.class.php, etc)
    // Get DBMS-specific create table array and data array
    require_once $_CONF['path'] . 'sql/' . $_DB_dbms . '_tableanddata.php';
    $progress = '';
    if (INST_checkTableExists('access')) {
        return false;
    }
    switch ($_DB_dbms) {
        case 'mysql':
            INST_updateDB($_SQL);
            if ($use_innodb) {
                DB_query("INSERT INTO {$_TABLES['vars']} (name, value) VALUES ('database_engine', 'InnoDB')");
            }
            break;
        case 'mssql':
            foreach ($_SQL as $sql) {
                $_DB->dbQuery($sql, 0, 1);
            }
            break;
    }
    // Now insert mandatory data and a small subset of initial data
    foreach ($_DATA as $data) {
        $progress .= "executing " . $data . "<br" . XHTML . ">\n";
        DB_query($data);
    }
    return true;
}
Ejemplo n.º 2
0
/**
 * Sets up the database tables
 *
 * @param   boolean $use_innodb     Whether to use InnoDB table support if using MySQL
 * @return  boolean                 True if successful
 *
 */
function INST_createDatabaseStructures($use_innodb = false)
{
    global $_CONF, $_TABLES, $_DB, $_DB_dbms, $_DB_host, $_DB_user, $_DB_pass, $LANG_INSTALL;
    $rc = true;
    switch ($_DB_dbms) {
        case 'mysql':
        case 'mysqli':
        default:
            $dbDriver = 'mysql';
            break;
    }
    $_DB->setDisplayError(true);
    // Because the create table syntax can vary from dbms-to-dbms we are
    // leaving that up to each database driver (e.g. mysql.class.php,
    // postgresql.class.php, etc)
    // Get DBMS-specific create table array and data array
    if (!@file_exists($_CONF['path'] . 'sql/' . $dbDriver . '_tableanddata.php')) {
        echo _displayError(FILE_INCLUDE_ERROR, 'pathsetting');
        exit;
    }
    require_once $_CONF['path'] . 'sql/' . $dbDriver . '_tableanddata.php';
    $progress = '';
    $errors = '';
    $rc = true;
    if (INST_checkTableExists('access')) {
        return array(false, $LANG_ISNTALL['database_exists']);
    }
    switch ($_DB_dbms) {
        case 'mysql':
        case 'mysqli':
            list($rc, $errors) = INST_updateDB($_SQL, $use_innodb);
            if ($rc != true) {
                return array($rc, $errors);
            }
            if ($use_innodb) {
                DB_query("INSERT INTO {$_TABLES['vars']} (name, value) VALUES ('database_engine', 'InnoDB')");
            }
            break;
    }
    // Now insert mandatory data and a small subset of initial data
    foreach ($_DATA as $data) {
        $progress .= "executing " . $data . "<br />\n";
        DB_query($data, 1);
        if (DB_error()) {
            $errors .= DB_error() . "<br />\n";
            $rc = false;
        }
    }
    return array($rc, $errors);
}