【发布时间】:2015-11-23 08:21:27
【问题描述】:
我是 CodeIgniter 的初学者(或多或少 1 个月),我正在尝试使其与 sqlite3 数据库一起使用,但我很难过。我错过了什么?
我使用this thread 配置它,希望它不是导致此问题的原因。
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'sqlite:'.APPPATH.'db/******.s3db';
$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;
这是我的模型:
<?php
class QuoteModel extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function getQuote() {
$query = $this->db->get('quote');
return $query->row_array();
}
}
将表名更改为不在数据库中的名称会产生错误,这让我认为与数据库的连接有效:
A Database Error Occurred
Error Number: HY000
no such table: unknown_table
SELECT * FROM unknown_table
Filename: C:\xampp\htdocs\*****\system\database\DB_driver.php
Line Number: 330
通过将table_name 更改为数据库中的任何其他表,$this->db->last_query() 看起来没问题,并在我的 SQLiteStudio 中正确执行,返回了许多行,但 $query->num_rows() 返回 0。
没有错误,但 PHP 日志中只有一个警告,可能与我的问题无关:
[22-Nov-2015 23:37:32 UTC] PHP Warning: Module 'oci8' already loaded in Unknown on line 0
我将 XAMPP 1.8.3 与 PHP 5.5.15 一起使用,PDO 支持启用了 PDO 驱动程序的 mysql、sqlite 和 SQLite 3.x 的 PDO 驱动程序启用了 SQLite 库的 3.8.4.3、CodeIgniter 2.2 在 Windows 7 Prof SP1 64 位中。
请帮忙。
【问题讨论】:
-
数据库是sqlite,我认为我们不需要用户名或密码来连接。
标签: php codeigniter pdo sqlite