0)
{
error("DB has already tables with this prefix!");
break;
}
// add root user warning
if ($db_user == 'root')
{
warn("You've used 'root' as database username. Root is often the master administration account.
For security reasons it is recommended that you choose a different username after
the installation.");
}
// continue with table installation
$step++;
case 4: /*
* continue installation by upgrading or installing tables and (re)moving files (upgrade only)
*/
if ($upgrading)
{
// re-connect if not continued from step 3
if (!isset($dbh))
{
$dbh = @mysqli_connect($db_server, $db_user, $db_password);
if (mysqli_connect_error()) trigger_error("Can't connect: ".mysqli_connect_error(), E_USER_ERROR);
mysqli_select_db($dbh, $db_database) or trigger_error("Can't select database: ".mysqli_error($dbh), E_USER_ERROR);
}
// get version
$sql = "SELECT value FROM {$db_prefix}config WHERE opt = 'dbversion'";
$rs = mysqli_query($dbh, $sql);
if ($rs) list($version) = mysqli_fetch_row($rs);
// successfully retrieved installed version?
if (!($rs && $version))
{
error("Error getting DB version, try full install instead of upgrade: ".mysqli_error($dbh));
error("
$sql ");
$step--;
break;
}
// already correct db version? this might happen if just the username/ password were wrong
if ($version >= DB_REQUIRED)
{
info("Database upgrade not required.");
break;
}
// perform actual upgrade
$upgrades = parse_upgrades($upgrade_sql);
if ($version >= max(array_keys($upgrades)))
{
info("Database upgrade not required.");
$step--;
break;
}
else
{
// upgrade
info(" Upgrading tables...");
info("Old database version: $version");
$sql_array = array();
// select the relevant upgrades (> current version)
foreach ($upgrades as $ver => $value)
{
if ($ver > $version) $sql_array["$ver"] = $value;
}
// upgrades successful?
$version = db_upgrade($sql_array);
if (is_numeric($version))
{
info("New database version: $version");
// dev-time sanity check
if ($version > DB_REQUIRED) warn("Upgraded database version $version is higher than required database version ".DB_REQUIRED);
}
else
{
// error
$step--;
}
}
}
else
{
// install
info(" Installing tables...");
// re-connect if not continued from step 3
if (!$dbh) {
$dbh = @mysqli_connect($db_server, $db_user, $db_password);
if (mysqli_connect_error()) trigger_error("Can't connect: ".mysqli_connect_error(), E_USER_ERROR);
mysqli_select_db($dbh, $db_database) or trigger_error("Can't select database: ".mysqli_error($dbh), E_USER_ERROR);
}
// open SQL script from doc directory
$sql = file_get_contents($install_sql);
if (!$sql) trigger_error('Couldn\'t open SQL file: '.$install_sql, E_USER_ERROR);
if (runSQL($sql, $dbh) === false) {
error('Error creating tables: '.mysqli_error($dbh));
error('
'.$sql.' ');
$step--;
}
else
{
$write_config_file = true;
/*
// create config file
info(" Writing config file...");
$config = parse_config(array(
'db_server' => $db_server,
'db_user' => $db_user,
'db_password' => $db_password,
'db_database' => $db_database,
'db_prefix' => $db_prefix), true);
if (!file_put_contents(CONFIG_FILE, $config))
{
error(' Could not write config file '.CONFIG_FILE.'!
Please make sure your config file contains the following lines:
'.
highlight_string($config, 1));
}
*/
}
}
break;
}
// determine next installation step
switch ($step)
{
case 4: // start videoDB
$action_target = 'index.php';
break;
default: // continue installation
$action_target = 'install.php';
}
?>
Step:
|
|