2010-09-30 61 views
0

是否可以在CodeIgniter中使用任何PHP驅動程序手動連接到數據庫?我會在模型中打開一個連接嗎?我需要CodeIgniter不會覆蓋,但我想用它的MVC架構。我只是不能像使用MySQL等演示中那樣使用ActiveRecord。如何在CodeIgniter中手動連接數據庫?

如果我可以只做一個「常規」的非CodeIgniter數據庫連接,那麼如何將信息傳入我的控制器?

另外,我想以這種方式使用CodeIgniter(無活動記錄),但對於所有其他「東西」是錯誤的嗎?

謝謝。

回答

3

這是使用功能性的PHP連接到MySQL數據庫的一個非常簡單的例子。它來自於PHP手冊。把它放在你的模型中。通過調用模型函數以正常的CI方式來調用它。它將返回結果數組,因此將模型調用分配給控制器中的變量。

<?php 
function my_model_query(){ 
    //replace the function arguments with your information 
    $link = mysql_connect('host_name', 'mysql_user', 'mysql_password'); 
    if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
    } 
    //your code here 
    $query = "SELECT * FROM mytable"; 
    $result = mysql_query($query); 
    while($row = mysql_fetch_assoc($result)){ 

     $result_array[]['your_field_1'] = $row['your_field_1']; 
     $result_array[]['your_field_2'] = $row['your_field_2']; 
     //and so on 

     } 

    //close the connection when you are done 
    mysql_close($link); 

    //send results back to controller 
    return $result_array; 


}//endfunction 
?> 

你可以在你的模型方法中使用它。讓我們假設你返回結果

編輯:移動mysql_close上述return語句

+0

感謝您的幫助。 – johnny 2010-09-30 23:55:17

+0

在這段代碼中'mysql_close($ link);'永遠不會執行... :-) – Mischa 2010-10-01 11:04:41

+0

因爲它是在return語句之後? – kevtrout 2010-10-01 13:42:14

2

我真的不知道你的問題是什麼,但是你可以在沒有活動記錄的情況下執行查詢。

e.g

$this->db->query(); 
+0

我只是說,我不希望使用內置與CI配套的驅動程序。我不知道該怎麼做。 – johnny 2010-09-30 17:30:21

+0

即使內置驅動程序使用爲每個數據庫提供的功能庫?即。 CI的MySQL驅動程序使用mysql_connect,mysql_query,mysql_fetch_assoc等等,並且驅動程序處理您不必擔心的手續。 – 2010-10-02 14:13:07

1

爲手動連接到數據庫,只是正常的代碼

$link = mysqli_connect('localhost','root','','db_iris');