2011-11-30 28 views
6

Estoy tratando de comenzar con sqlite en la última versión de CodeIgniter.Trabajando con SQLite en codeigniter

Mi database.php se ve así:

$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; 

He creado mi mesa se produce y pone los datos en él.

estoy tratando de recopilar datos con este código:

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


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

Esto me da el siguiente error: Fatal error: [] operator not supported for strings in/Applications/MAMP/htdocs/webites/api/public_html/system/database/DB_driver.php on line 1183

O a veces este error:

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 

¿Cómo resuelvo ¿eso? No puedo agregar datos a ninguno, hay errores similares

Respuesta

1

Nunca intenté usar SQLite con CI, pero encontré una posible respuesta a su problema. Trate de añadir 'sqlite:' delante de su nombre de la base de datos, como:

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

Source.

+0

$ db [ 'default'] [ 'base de datos'] = 'sqlite:'. APLICACIÓN 'db/producers.sqlite'; me da error: FEL: SQLSTATE [HY000] [14] no se puede abrir el archivo de base de datos – IVar

+0

no se olvide '$ db ['default'] ['dbdriver'] = 'pdo';' –

2

que he tenido el mismo problema cuando se utiliza IC 2.1.0 y encontré la siguiente solución para el error fatal:

En el sistema de base de datos// DB_driver.php cambio:

Línea 1165

$message = $error; 

a

$message[] = $error; 

Línea 1169

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

a

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

Source

1

Para resolver el error "Fatal error: [] operador no admite para cuerdas"

modifico archivo en * DB_driver.php: 1171 *

añadir esta línea:

$message = (array)$message; 
1

Hay un error en 2.1.0 impide que trabaje con bases de datos SQLite. Necesita tener una versión actualizada de CodeIgniter 2.1.1.

0

tratar 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 
    );