2012-01-05 73 views
5

我在網上做了大量的研究,但我沒有找到任何可以幫助我在codeigniter中使用PDO的東西。我看到CI 2.1.0的變化(我認爲)pdo驅動程序被添加到框架中。 我結束了,現在有database.php中的配置文件看起來像這樣:Codeigniter PDO集成

$db['default']['hostname'] = 'mysql:host=myhostname;port=myport'; 
$db['default']['username'] = 'myusername'; 
$db['default']['password'] = 'mypassword'; 
$db['default']['database'] = 'mydb'; 
$db['default']['dbdriver'] = 'pdo'; 

所以現在(浪費了不少時間後得到片段上方工作-.-),我也不會收到有關連接錯誤,但是如何現在執行查詢?我不知道什麼語法將工作以及如何構建查詢。任何人都有提示?

PS:如果你wordering爲什麼我需要PDO的詞,答案是我的老闆要我創建一個結構化的環境:

  1. CI 2.X +(完成)
  2. Smarty的3(完成)
  3. PHPUnit的(沒有)
  4. PDO(目前還沒有)

所以如果你有也爲整合PHPUnit的任何提示覺得可以自由回答。 Ty提前

回答

7

您使用PDO的方式與您在CodeIgniter中使用任何其他數據庫驅動程序的方式相同。如果您仍然不確定,那麼我會建議您閱讀Database Class上的文檔。

您可以通過明確編寫查詢來發出標準查詢,也可以使用Active Record Class(它更像是查詢生成器)。

下面是一些例子:

// Standard query 
$results = $this->db->query('SELECT name, title, email FROM my_table'); 

// Active record 
$this->db->select('name, title, email'); 
$results = $this->db->get('my_table'); 

至於整合PHPUnit的,看看https://github.com/cmillr/CI-PHPUnit(我還沒有測試它自己),或看看周圍CodeIgniter forums。我已經看到很多將PHPUnit與CodeIgniter集成的主題。

+0

真的ty爲phpunit提示!!!!你已經幫了我很多,我已經失去了幾個小時尋找phpunit smth,但我只找到舊的ci圖書館等...關於pdoü對,我不明白爲什麼,但在家裏它的工作正常,但在工作更緊密 - >查詢或AR似乎工作,我應深入調查。但ty再次XD – th3n3rd 2012-01-05 18:09:17

+1

我用xdebug來跟蹤什麼時候我做了什麼調用活動記錄或查詢方法,並在這兩種情況CI不使用pdo「準備」聲明大聲笑...什麼是使用pdo驅動程序的優點,如果CI不'在裏面使用pdo函數!!!我想特別使用pdo,因爲它有一個查詢綁定方法(不像codeigniter一個)。 – th3n3rd 2012-01-09 10:06:55

+0

這是超舊的,但一定要準備查詢。 http://ellislab.com/forums/viewthread/218455/ – RaGe10940 2013-02-12 12:56:29

8

你需要改變你的配置一點:

'dsn' => 'mysql:host=localhost;dbname=codeigniter', 
//'hostname' => 'localhost', 
'username' => 'codeigniter', 
'password' => 'codeigniter', 
'database' => 'codeigniter', 

注意,我們使用的DSN,而不是主機名。

之後,只需使用$this->db->像你總是這樣 - PDO驅動將一切都轉化爲PDO方法

有點過時,但主題是缺乏明確的解釋&文檔,所以我寫了這個 - 希望它有助於澄清人們:

http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

+1

獨立鏈接被認爲是一個不好的答案(參見[faq#deletion]),因爲它本身毫無意義,並且**目標資源不能保證在將來活着**。 [這將是最好的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供鏈接供參考。 – j0k 2013-03-16 08:08:20

+2

注意並更新 – jmadsen 2013-03-16 08:13:34