我是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。 / p>
没有错误,只有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和PDO驱动程序用于SQLite 3.x SQLite库启用3.8.4.3,CodeIgniter 2.2在Windows 7 Prof SP1 64位。
请帮忙。
答案 0 :(得分:0)
尝试
$db['default']['username'] = 'DATABASE USERNAME';
$db['default']['password'] = 'IF USER HAS A PASSWORD';
$db['default']['database'] = 'DATABASE NAME HERE';
$db['default']['dbdriver'] = 'sqlite';
答案 1 :(得分:0)
一位伟大的办公室伙伴建议在CodeIgniter 3中尝试。然后我很高兴。
在我的database.php中,用户名,密码和数据库名称都是空的:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'sqlite:'.APPPATH.'db/******.s3db',
'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
);
我正在使用CodeIgniter 3.0.3,截至此日期的框架的当前版本。