我知道CI 2.1.3現在支持PDO。但是使用pdo函數而不是codeigniter函數會更舒適,現在我想擴展PDO並將其用作庫,並在Controller或其他庫加載後創建PDO對象;這是可能的,不是嗎?,我試圖至今:將PDO擴展爲CodeIgniter庫
class Mypdo extends PDO {
public function __construct($dsn='mysql:dbname=mydbname;host=localhost',
$username='myusername',
$password='mypassword',
$driver_options=array()) {
parent::__construct($dsn, $username, $password, $driver_options);
}
}
和簡單的用法:
class Otherlibrary{
var $CI;
var $something_id;
public function __construct(){
$this->CI =& get_instance();
$this->CI->load->library('mypdo');
$this->something_id = 'foo';
}
public function is_something_exist(){
try{
$q = "SELECT * FROM something WHERE something_id = '$this->something_id'";
$stmt = $this->CI->mypdo->prepare($q); //<--PROBLEM
$stmt->execute();
if ($stmt->rowCount() < 1){
return false;
} else {
return true;
}
} catch (PDOException $e){
echo $e->getMessage();
}
}
}
總是返回:
Fatal error: Call to a member function prepare() on a non-object in...
我不是專家,在所有在PHP類/對象中,所以請我幫助改進我的代碼並使其工作。謝謝。
我認爲它有活動記錄 – 2013-04-09 03:13:01
@ArunKillu我不明白,活動記錄如何重要?我該怎麼辦? – egig 2013-04-09 03:16:14
爲什麼你想在框架本身提供一個實現pdo的時候再次實現pdo://ellislab.com/codeigniter/user-guide/database/configuration.html – 2013-04-09 03:23:07