无法在CI中使用数据库库

时间:2014-05-03 21:19:22

标签: codeigniter codeigniter-2

出于某种原因,我无法使数据库库正常工作。任何时候我把行$ this-> load-> database();脚本停止执行而不返回任何错误。

这是我的database.php:

$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'employee';
$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;

这是我的模特:

class Customers_model extends CI_Model
{

    function __construct()
    {
        parent::__construct();
        //$this->load->database();
    }

    function add_customer($data)
    {
        echo "BEFORE CHECK";
        $this->load->database();
        echo "OK";
    }

}

正如我所说,它不会返回任何错误。因此,在这种情况下,屏幕将返回" BEFORE CHECK"但它不会:"好的"。有什么想法吗?

5 个答案:

答案 0 :(得分:0)

尝试将持久连接$db['default']['pconnect'] = TRUE;更改为$db['default']['pconnect'] = FALSE;或者您可以从$config['log_threshold'] = 4;启用配置文件中的错误日志,其中阈值选项:

  0 = Disables logging, Error logging TURNED OFF
  1 = Error Messages (including PHP errors)
  2 = Debug Messages
  3 = Informational Messages
  4 = All Messages

答案 1 :(得分:0)

确保php.ini中有'error_reporting = E_ALL'以显示发生的任何错误。

之后,如果您的凭据有错误,您应该会看到错误类型。

在CodeIgniter(CI)中使用数据库非常容易。

请参阅: http://ellislab.com/codeigniter/user-guide/database/examples.html

答案 2 :(得分:0)

尝试更改

$db['default']['hostname'] = '127.0.0.1';

$db['default']['hostname'] = 'localhost';

确保密码

答案 3 :(得分:0)

  • 您确定自己处于开发阶段吗?模式? (查看index.php)的开头

  • 手动触发错误会怎样? trigger_error('blah blah', E_USER_ERROR);


编辑:问题可能是因为CodeIgniter会屏蔽许多与SQL相关的错误(例如,请参阅此recent issue)。调试代码的最简单方法是安装Xdebug并启用scream option

答案 4 :(得分:0)

好的,所以当我在php.ini中取消注释这一行时,一切都开始正常工作:extension = php_mysql.dll

但是为什么它没有在CI中返回任何错误?