2011-11-30 34 views
6

Tôi đang cố gắng bắt đầu với sqlite trong phiên bản CodeIgniter mới nhất.Làm việc với SQLite trong mã vạch

database.php của tôi trông như thế này:

$active_group = 'default'; 
$active_record = TRUE; 

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

Tôi đã tạo ra bàn của tôi được sản xuất và đưa dữ liệu vào nó.

Tôi đang cố gắng để thu thập dữ liệu với mã này:

$query = $ this-> db-> get ('Producers'); 


foreach ($ query-> result() as $ row) 
{ 
echo $ row-> name; 
} 

này mang lại cho tôi những lỗi sau: Fatal error: [] operator not supported for strings in/Applications/MAMP/htdocs/webites/api/public_html/system/database/DB_driver.php on line 1183

Hoặc lỗi này đôi khi:

A Database error occurred 

Error Number: 1 

SQL logic error or missing database 

SELECT * FROM (Producers) 

Filename:/Applications/MAMP/htdocs/webites/api/public_html/controllers/welcome.php 

Line Number: 23 

Làm thế nào để giải quyết nó? Tôi không thể thêm dữ liệu vào một trong hai lỗi tương tự

Trả lời

1

Không bao giờ cố gắng sử dụng SQLite với CI, nhưng tôi đã tìm thấy câu trả lời có thể cho vấn đề của bạn. Thử thêm 'sqlite:' vào trước tên cơ sở dữ liệu của bạn, như:

$db ['default'] ['database'] = 'sqlite:'.APPPATH.'db/producers.sqlite'; 

Source.

+0

$ db [ 'mặc định'] [ 'cơ sở dữ liệu'] = 'sqlite:'. APPPATH. 'db/producer.sqlite'; cung cấp cho tôi lỗi: FEL: SQLSTATE [HY000] [14] không thể mở tệp cơ sở dữ liệu – IVar

+0

đừng quên '$ db ['default'] ['dbdriver'] = 'pdo';' –

2

Tôi đã có cùng một vấn đề khi sử dụng CI 2.1.0 và thấy việc sửa chữa sau cho lỗi nghiêm trọng:

Trong hệ thống/cơ sở dữ liệu/DB_driver.php thay đổi:

Dòng 1165

$message = $error; 

để

$message[] = $error; 

Dòng 1169

$message = (! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error; 

để

$message[] = (! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error; 

Source

1

Để giải quyết các lỗi "Fatal error: [] nhà điều hành không được hỗ trợ cho các chuỗi"

tôi sửa đổi tập tin trong * DB_driver.php: 1171 *

thêm dòng này:

$message = (array)$message; 
1

Có một lỗi trong 2.1.0 ngăn không cho nó làm việc với cơ sở dữ liệu SQLite. Bạn cần phải có phiên bản cập nhật của CodeIgniter 2.1.1.

0

thử CodeIgniter 3x

$db['default'] = array(
     'dsn' => '', 
     'hostname' => 'sqlite:' . APPPATH . 'db/database.db', 
     '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 
    );