为什么读取现有的sqlite数据库会生成一个新文件


Why reading existing sqlite database generate a new file

我正在尝试使用PDO连接读取codeigniter中现有的sqlite数据库文件。我的问题实际上有两个方面:

  1. 读取现有的sqlite数据库实际上会创建一个新的数据库文件和原始数据库文件。假设原始数据库文件名为a.db,则新文件名将为a.db;dbname=

  2. 随后的db语句对a.db;dbname=进行操作。我已经尝试运行创建表,在这个新的数据库文件上插入新的值。两者运行良好。但是,select语句不返回任何内容,也不返回任何错误。

在这一点上我感到困惑。。请帮忙。

更新了相关设置:

// sql
$this->db->query('create table x (y int)');
$this->db->query('insert into x values(6)');
$result = $this->db->get('x')->result();  // $result is an empty array
// config/database.php
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'sqlite:/home/perlwle/db/a.db';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$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;

/home/perlwle/db/a.db是sqlite数据库文件,由www数据拥有和写入。

谢谢。

这是CodeIgniter中的一个错误;你必须更新。