CodeIgniter 原生 SQLite 驅動僅支持 SQLite 2.x,但自 2.1 版起內置 PDO 驅動,可無縫支持 SQLite3。配置極簡,無需額外擴展。
編輯 application/config/database.php:
$db['default']['hostname'] = 'sqlite:' . FCPATH . '../db/tms.db'; // PDO DSN 格式 $db['default']['username'] = ''; $db['default']['password'] = ''; $db['default']['database'] = ''; $db['default']['dbdriver'] = 'pdo'; // 關鍵:使用 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;
sqlite:/path/to/db,路徑建議用絕對路徑pdo_sqlite 擴展$this->load->database();
$query = $this->db->query('SELECT sqlite_version()');
echo $query->row()->{'sqlite_version()'}; // 輸出如 3.37.2
| 差異點 | MySQL | SQLite3 |
|---|---|---|
| 並發寫入 | 行級鎖 | 文件級鎖,高併發寫入性能弱 |
| ALTER TABLE | 完整支持 | 部分操作需重建表 |
| 存儲過程/觸發器 | 支持 | 不支持 |
| 部署優勢 | 需獨立服務 | 單文件、零配置、適合嵌入式/輕量應用 |