我正在尝试在我的CodeIgniter应用程序中使用PDO MySQL驱动程序。这是我的数据库配置:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'testdatabase';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
然而,当我加载一个控制器时,我遇到了以下错误:
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in C:\xampp\htdocs\testsite\system\database\drivers\pdo\pdo_driver.php:114
我已经使用pdo_driver.php
中的die($this->hostname);
检查了数据源,结果显示为:
localhost;dbname=testdatabase
所以它获取了正确的数据库名称。该数据库存在,并且我已经运行了MySQL。
可能出了什么问题?谢谢。
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in...((列出了几个数据库和核心目录/文件))... syetem/database/drivers/pdo/pdo_driver.php on line 114
我还是新手,甚至无法确定你的黑客方法是否能帮助我。你在.../system/database/drivers/pdo/pdo_driver.php
中究竟编辑了什么?我对配置主题非常陌生。在CI v.2.1.1中需要修改系统文件才能使PDO工作似乎有些奇怪,不是吗?为什么(大多数)其他人不需要你提到的这个黑客方法呢? - govinda.../system/database/drivers/pdo/pdo_driver.php
的第81行从这个内容:empty($this->database) OR $this->hostname .= ';dbname='.$this->database;
改成了这个内容:empty($this->database) OR $this->hostname = 'mysql:dbname='.$this->database.';host='.$this->hostname;
?还是你可以这样说:哪一行从什么改成了什么? - govinda$db ['local_dev'] ['hostname']
在我的数据库配置中应该是什么值(不成功)时得到的结果类似。如果您有任何更多的想法,我很愿意听取。顺便说一下,我们的/system/database/drivers/pdo/pdo_driver.php
副本之间有一些差异,这是我的副本:http://pastebin.com/hV9Ezaqp。您可能会发现第192行上的差异特别有趣。我很快就无法理解了,所以你最好自己看一下。让我知道你对此的想法。 - govinda