是否可以在CodeIgniter中使用任何PHP驅動程序手動連接到數據庫?我會在模型中打開一個連接嗎?我需要CodeIgniter不會覆蓋,但我想用它的MVC架構。我只是不能像使用MySQL等演示中那樣使用ActiveRecord。如何在CodeIgniter中手動連接數據庫?
如果我可以只做一個「常規」的非CodeIgniter數據庫連接,那麼如何將信息傳入我的控制器?
另外,我想以這種方式使用CodeIgniter(無活動記錄),但對於所有其他「東西」是錯誤的嗎?
謝謝。
是否可以在CodeIgniter中使用任何PHP驅動程序手動連接到數據庫?我會在模型中打開一個連接嗎?我需要CodeIgniter不會覆蓋,但我想用它的MVC架構。我只是不能像使用MySQL等演示中那樣使用ActiveRecord。如何在CodeIgniter中手動連接數據庫?
如果我可以只做一個「常規」的非CodeIgniter數據庫連接,那麼如何將信息傳入我的控制器?
另外,我想以這種方式使用CodeIgniter(無活動記錄),但對於所有其他「東西」是錯誤的嗎?
謝謝。
這是使用功能性的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語句
我真的不知道你的問題是什麼,但是你可以在沒有活動記錄的情況下執行查詢。
e.g
$this->db->query();
我只是說,我不希望使用內置與CI配套的驅動程序。我不知道該怎麼做。 – johnny 2010-09-30 17:30:21
即使內置驅動程序使用爲每個數據庫提供的功能庫?即。 CI的MySQL驅動程序使用mysql_connect,mysql_query,mysql_fetch_assoc等等,並且驅動程序處理您不必擔心的手續。 – 2010-10-02 14:13:07
爲手動連接到數據庫,只是正常的代碼
$link = mysqli_connect('localhost','root','','db_iris');
感謝您的幫助。 – johnny 2010-09-30 23:55:17
在這段代碼中'mysql_close($ link);'永遠不會執行... :-) – Mischa 2010-10-01 11:04:41
因爲它是在return語句之後? – kevtrout 2010-10-01 13:42:14