Codeigniter:在Windows XP中将错误显示为“无法选择指定的数据库:项目”

时间:2013-03-19 15:32:46

标签: codeigniter wamp wampserver easyphp tankauth

我正在使用Windows XP并使用EasyPHP作为服务器。我已将Codeigniter与TankAuth集成在一起。但是,当我尝试打开我的赋值文件夹时,它显示错误如下:

Unable to select the specified database: project

Filename: C:\Program Files\EasyPHP-12.1\www\assignment\system\database\DB_driver.php

Line Number: 140

我的数据库.php中的代码如下“

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root123';
$db['default']['database'] = 'project';
$db['default']['dbdriver'] = 'mysql';
$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;

我已经检查了我的database.php,里面有我的数据库名称为'project'。

我尝试使用主机名作为'localhost'和'127.0.0.1',但没有一个工作。

我已将默认控制器设置为'auth',即TankAuth的默认控制器。

并在'auth'控制器中的构造中初始化了'database'库。

刚才我使用Wamp Server尝试了同样的事情。但是,得到了相同的结果。

在某处我读到我应该尝试制作$db['default']['pconnect']

$db['default']['db_debug']FALSE。但它没有用。

所有访问权限都已授予数据库'project'。

我应该尝试使其有效吗?

提前致谢...

5 个答案:

答案 0 :(得分:20)

我遇到了类似的问题,但不幸的是,任何网站上的答案都没有帮助。奇怪的是,我很容易使用简单的PHP连接到MySQL,但在CodeIgniter中,我收到了这条消息。

最后这解决了我的问题。打开application/config/database.php文件并更改以下行:

$db['default']['dbdriver'] = 'mysql';

要:

$db['default']['dbdriver'] = 'mysqli';

这一天转移到mysqli

答案 1 :(得分:11)

错误表明它已成功连接到您的数据库软件,但找不到名为project的指定数据库。检查数据库连接并确保它们都正确 - 听起来您的数据库名称应该是assignment

编辑:检查以确保您登录的数据库用户也有权访问指定的数据库。

答案 2 :(得分:2)

也许这会在某个时候拯救某人 - 我使用的是cPanel,并且它有一定的规则,即用户必须绑定到数据库才能访问它。我得到了同样的错误,但由于我没有权限,我无法访问它。

在cPanel中转到MySQL数据库,找到您的用户并将此用户添加到您的数据库中。

答案 3 :(得分:1)

试试这个:只需刷新数据库软件。如果您使用的是PHPMy Admin,请刷新页面并尝试加载PHP页面。 或者如果您的数据库中有任何存储过程,这可能会导致问题。 尝试删除存储过程。

答案 4 :(得分:0)

Notice: SQL safe mode in effect – ignoring host/user/password information in
mysql_connect(): SQL safe mode in effect – ignoring host/user/password information in
This is caused due to your php.ini sql safe mode settings.
Login your php.ini file.
Go php.ini from apache and turn off sql.safe mode.

[SQL]
sql.safe_mode  = Off
Restart apache