[*] IN : only display the button to create the database if you can actually create the database

This commit is contained in:
Damien Metzger
2013-07-03 11:28:55 +02:00
parent bfa2f33c65
commit 5789e6eb51
4 changed files with 23 additions and 13 deletions
+5 -2
View File
@@ -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;
}
/**
+6 -3
View File
@@ -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;
}
/**
+5 -2
View File
@@ -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;
}
/**
+7 -6
View File
@@ -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.'<br /><br />
'.sprintf('<input type="button" value="%s" class="button" id="btCreateDB">
<script type="text/javascript">bindCreateDB();</script>',
$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 .= '<p>'.sprintf('<input type="button" value="%s" class="button" id="btCreateDB">', $this->language->l('Attempt to create the database automatically')).'</p>
<script type="text/javascript">bindCreateDB();</script>';
$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)