2016-08-11 37 views
0

我使用CodeIgniter 3.1.0開發應用程序。 爲了改進它的安裝,我寫了一個Install_Controller和一個Install_Model。我正在使用Database Forge類來管理數據庫。感謝它,我可以創建一個數據庫,但我不能檢查它是否存在。實際上,我的想法是將查詢傳遞給dbforge,如「CREATE DATABASE IF NOT EXISTS mydatabase」。我搜索了文檔,但沒有任何功能可以滿足我的要求。我可以在哪裏寫這樣的查詢?CodeIgniter:使用Database Forge測試DB是否存在

這裏是前者的摘錄:

$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'); 
    } 

} 

回答

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; 
      } 

} 
+0

謝謝,因此有沒有辦法使用OOP與dbforge類? – Fafanellu

+0

你可以根據你的需求改變這個類。所以不用擔心它的體系結構。我只是使用CI Active記錄概念向你展示一個解決方案。 – Tharanga

+0

是的,我太關注使用dbforge了,我幾乎忘記了可以使用常規查詢:) – Fafanellu