diff --git a/classes/db/DbMySQLi.php b/classes/db/DbMySQLi.php
index 43c4eaf52..258398491 100644
--- a/classes/db/DbMySQLi.php
+++ b/classes/db/DbMySQLi.php
@@ -53,7 +53,7 @@ class DbMySQLiCore extends Db
return $this->link;
}
- public static function createDatabase($host, $user, $password, $dbname)
+ public static function createDatabase($host, $user, $password, $dbname, $dropit = false)
{
if (strpos($host, ':') !== false)
{
@@ -62,7 +62,10 @@ class DbMySQLiCore extends Db
}
else
$link = @new mysqli($host, $user, $password);
- return $link->query('CREATE DATABASE `'.bqSQL($dbname).'`');
+ $success = $link->query('CREATE DATABASE `'.bqSQL($dbname).'`');
+ if ($dropit)
+ $success &= $link->query('DROP DATABASE `'.bqSQL($dbname).'`');
+ return $success;
}
/**
diff --git a/classes/db/DbPDO.php b/classes/db/DbPDO.php
index e257b753c..db7f9fa26 100644
--- a/classes/db/DbPDO.php
+++ b/classes/db/DbPDO.php
@@ -46,14 +46,17 @@ class DbPDOCore extends Db
return new PDO($dsn, $user, $password, array(PDO::ATTR_TIMEOUT => $timeout, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
}
- public static function createDatabase($host, $user, $password, $dbname)
+ public static function createDatabase($host, $user, $password, $dbname, $dropit = false)
{
try {
$link = DbPDO::_getPDO($host, $user, $password, false);
- return $link->exec('CREATE DATABASE `'.bqSQL($dbname).'`');
+ $success = $link->exec('CREATE DATABASE `'.bqSQL($dbname).'`');
+ if ($dropit)
+ $success &= $link->exec('DROP DATABASE `'.bqSQL($dbname).'`');
} catch (PDOException $e) {
- return false;
+ $success = false;
}
+ return $success;
}
/**
diff --git a/classes/db/MySQL.php b/classes/db/MySQL.php
index c681a2ef2..ae58d5ffb 100644
--- a/classes/db/MySQL.php
+++ b/classes/db/MySQL.php
@@ -47,10 +47,13 @@ class MySQLCore extends Db
return $this->link;
}
- public static function createDatabase($host, $user, $password, $dbname)
+ public static function createDatabase($host, $user, $password, $dbname, $dropit = false)
{
$link = mysql_connect($host, $user, $password);
- return mysql_query('CREATE DATABASE `'.bqSQL($dbname).'`');
+ $success = mysql_query('CREATE DATABASE `'.bqSQL($dbname).'`', $link);
+ if ($dropit)
+ $success &= mysql_query('DROP DATABASE `'.bqSQL($dbname).'`', $link);
+ return $success;
}
/**
diff --git a/install-dev/models/database.php b/install-dev/models/database.php
index 3620f677b..bb3d78d2d 100644
--- a/install-dev/models/database.php
+++ b/install-dev/models/database.php
@@ -81,10 +81,11 @@ class InstallModelDatabase extends InstallAbstractModel
break;
case 2:
- $errors[] = $this->language->l('Connection to MySQL server succeeded, but database "%s" not found', $database).$dbtype.'
- '.sprintf('
- ',
- $this->language->l('Attempt to create the database automatically'));
+ $error = $this->language->l('Connection to MySQL server succeeded, but database "%s" not found', $database).$dbtype;
+ if ($this->createDatabase($server, $database, $login, $password, true))
+ $error .= '
'.sprintf('', $this->language->l('Attempt to create the database automatically')).'
+ '; + $errors[] = $error; break; } } @@ -92,10 +93,10 @@ class InstallModelDatabase extends InstallAbstractModel return $errors; } - public function createDatabase($server, $database, $login, $password) + public function createDatabase($server, $database, $login, $password, $dropit = false) { $class = Db::getClass(); - return $class::createDatabase($server, $login, $password, $database); + return $class::createDatabase($server, $login, $password, $database, $dropit); } public function getBestEngine($server, $database, $login, $password)