2011-11-30 22 views
6

Sto cercando di iniziare con sqlite nell'ultima versione di CodeIgniter.Utilizzo di SQLite nel codeigniter

mio database.php si presenta così:

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

ho creato il mio tavolo è prodotto e messo i dati in esso.

sto cercando di raccogliere i dati con questo codice:

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


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

Questo mi dà il seguente errore: Fatal error: [] operator not supported for strings in/Applications/MAMP/htdocs/webites/api/public_html/system/database/DB_driver.php on line 1183

O questo errore a volte:

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 

Come risolvo vero? Non posso aggiungere dati a nessuno, ci sono errori simili

risposta

1

Non ho mai provato a usare SQLite con CI, ma ho trovato una possibile risposta al tuo problema. Prova ad aggiungere 'sqlite:' di fronte il nome del database, come:

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

Source.

+0

$ db [ 'default'] [ 'database'] = 'sqlite:'. APPPATH. 'Db/producers.sqlite'; mi dà errore: FEL: SQLSTATE [HY000] [14] impossibile aprire il file di database – IVar

+0

non dimenticare '$ db ['default'] ['dbdriver'] = 'pdo';' –

2

Ho avuto lo stesso problema quando si utilizza CI 2.1.0 ed ho trovato la seguente correzione per l'errore fatale:

Nel sistema/database/DB_driver.php cambiamento:

Linea 1165

$message = $error; 

a

$message[] = $error; 

Linea 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

Per risolvere l'errore "Fatal error: [] operatore non supportato per le stringhe"

a modificare file in * DB_driver.php: 1171 *

aggiungendo questa linea:

$message = (array)$message; 
1

C'è un bug in 2.1.0 impedendole di lavorare con i database SQLite. È necessario disporre della versione aggiornata di CodeIgniter 2.1.1.

0

provare 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 
    ); 
Problemi correlati