CodeIgniter 3.0.6中的SQLite3

6

我找不到任何关于如何在CodeIgniter中使用sqlite3的文档,但是它确实支持。

以下是我的当前数据库配置:

$db['default']['hostname'] = '';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = 'db/base.db';
$db['default']['dbdriver'] = 'sqlite3';
$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;

但是页面加载时,我遇到了一个非常没有描述性的错误。
Unable to connect to your database server using the provided settings.

Filename: core/CodeIgniter.php

Line Number: 500

所以我的问题是,为什么我的配置不起作用,我该如何让它起作用?

那看起来像是Ci2数据库布局 http://www.codeigniter.com/user_guide/database/configuration.html - user4419336
2个回答

15
您正在使用CI2语法,我不知道您从哪里获取的,因为在默认软件包中,您可以找到与下面相同的代码,唯一需要定义的是database(db路径)和dbdriver
$db['default'] = array(
    'dsn'      => '',
    'hostname' => '',
    'username' => '',
    'password' => '',
    'database' => './application/database/data.db',
    'dbdriver' => 'sqlite3',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt'  => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

或者您可以使用这个(使用需要DSN字符串的PDO数据库驱动程序,否则CI将尝试构建它)

$db['default'] = array(
    'dsn'      => 'sqlite:application/database/data.db',// path/to/database
    'hostname' => '',
    'username' => '',
    'password' => '',
    'database' => '',
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt'  => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

1
'database' => './application/database/data.db',

如果没有起作用,请替换为。
'database' => APPPATH.'database/data.db',

并且

'dsn'      => 'sqlite:application/database/data.db',// path/to/database

如果不起作用,请替换为。
'dsn'      => 'sqlite:'.APPPATH.'/database/data.db',// path/to/database

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接