CodeIgniter: используйте Database Forge, чтобы проверить, существует ли БД
Я использую CodeIgniter 3.1.0 для разработки приложения. Чтобы улучшить его установку, я написал Install_Controller и Install_Model. Я использую класс Database Forge для управления базой данных. Благодаря этому я могу создать БД, но не могу до этого проверить, существует ли она. На самом деле, моя идея заключалась в том, чтобы передать запрос в dbforge, например, "CREATE DATABASE, ЕСЛИ НЕ СУЩЕСТВУЕТ mydatabase". Я искал документ, но не было никакой функции, которая могла бы удовлетворить мои требования. Где я могу написать такой запрос?
Вот выдержка из первого:
$this->load->model('Install_Model');
$this->Install_Model->launchInstall();
Вот код последнего:
class Install_Model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->dbforge();
}
public function index() {
if ($this->dbforge->create_database('mydatabase'))
{
echo "OK";
}
else {
echo "Error somewhere";
}
$this->load->database('mydatabase');
}
}
1 ответ
Вы можете использовать эту пользовательскую функцию SQL-запроса в вашем скрипте установки для создания новой базы данных.
public function createDB($databse) {
$strSQL = "CREATE DATABASE IF NOT EXISTS $databse";
$query = $this->db->query($strSQL);
if (!$query) {
throw new Exception($this->db->_error_message(),
$this->db->_error_number());
return FALSE;
} else {
return TRUE;
}
}