CodeIgniter:使用Database Forge测试DB是否存在

时间:2016-08-11 15:59:08

标签: codeigniter models database-create

我使用CodeIgniter 3.1.0开发应用。 为了改进其安装,我编写了一个Install_Controller和一个Install_Model。我使用Database Forge类来管理数据库。多亏了它,我可以创建一个数据库,但我不能检查它是否存在。实际上,我的想法是将查询传递给dbforge,例如" CREATE DATABASE IF NOT EXISTS 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 个答案:

答案 0 :(得分:0)

您可以在安装脚本中使用此自定义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;
            }

}