我想要在代碼點火器2.1.1中運行新的PDO驅動程序(以開始)本地(Mac OS 10.7)副本應用程序。 我最初使用Active Record對所有數據庫操作進行了編碼,現在我想在我的模型文件中使用PDO準備的語句。代碼點火器 - 嘗試配置database.php使用PDO驅動程序時出錯
我修改 '的application/config/database.php中' 像這樣: (注意幾個小的嵌入式問題)
[snip]
$active_group = 'local_dev';
$active_record = TRUE;//<---BTW, will this need to stay TRUE to make CI sessions work? For better security, don't we want db-based CI sessions to use PDO too?
//http://codeigniter.com/user_guide/database/configuration.html:
//Note: that some CodeIgniter classes such as Sessions require Active Records be enabled to access certain functionality.
//this is the config setting that I am guessing (?) is my main problem:
$db['local_dev']['hostname'] = 'localhost:/tmp/mysql.sock';
// 1.) if $db['local_dev']['dbdriver']='mysql', then here ^^^ 'localhost:/tmp/mysql.sock' works, 2.) but if $db['local_dev']['dbdriver']='pdo', then it fails with error msg. shown below.
$db['local_dev']['username'] = 'root';
$db['local_dev']['password'] = '';
$db['local_dev']['database'] = 'mydbname';
$db['local_dev']['dbdriver'] = 'pdo';
$db['local_dev']['dbprefix'] = '';
$db['local_dev']['pconnect'] = TRUE;
$db['local_dev']['db_debug'] = TRUE;//TRUE
$db['local_dev']['cache_on'] = FALSE;
$db['local_dev']['cachedir'] = '';
$db['local_dev']['char_set'] = 'utf8';
$db['local_dev']['dbcollat'] = 'utf8_general_ci';
$db['local_dev']['swap_pre'] = '';
$db['local_dev']['autoinit'] = TRUE;
$db['local_dev']['stricton'] = FALSE;
[snip]
通過以上的配置,只要我打開一個控制器,我得到。此錯誤消息:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in
/Library/WebServer/Documents/system/database/drivers/pdo/pdo_driver.php:114 Stack trace: #0
/Library/WebServer/Documents/system/database/drivers/pdo/pdo_driver.php(114): PDO->__construct('localhost:/tmp/...', 'root', '', Array) #1 /Library/WebServer/Documents/system/database/DB_driver.php(115): CI_DB_pdo_driver->db_pconnect() #2
/Library/WebServer/Documents/system/database/DB.php(148): CI_DB_driver->initialize() #3
/Library/WebServer/Documents/system/core/Loader.php(346): DB('', NULL) #4
/Library/WebServer/Documents/system/core/Loader.php(1171): CI_Loader->database() #5
/Library/WebServer/Documents/system/core/Loader.php(152): CI_Loader->_ci_autoloader() #6
/Library/WebServer/Documents/system/core/Con in
/Library/WebServer/Documents/system/database/drivers/pdo/pdo_driver.php on line 114
我試圖從github上一個換出「pdo_driver.php」文件,按照這樣的: http://codeigniter.com/forums/viewthread/206124/ ......但只是產生其他錯誤,更何況是d如果可能的話,不要觸摸系統文件的新手。
此線程似乎也暗示需要被盜號了「pdo_driver.php」系統文件: CodeIgniter PDO database driver not working 這似乎很奇怪對我來說,雖然,(有人認爲)一個黑客對系統文件是需要在CI v.2.1.1中使PDO工作,是吧?
感謝您的任何建議,我可以嘗試。
在這裏讀到:http://stackoverflow.com/questions/5884761/how-can-i-use-pdo-in-codeigniter-2 –
感謝嚴,(我所見到的)。 ..但它看起來像是一個老對話開始的人試圖安裝一個*自定義PDO hack *代碼點火器,反對編輯到我正在嘗試做的 - 只是得到支持(開箱即用)PDO驅動程序運行...所以不幫助我。 – govinda