2011-11-07 4 views
13

Sto cercando di eseguire SQLite3 con CakePHP 2.0Utilizzando SQLite3 con CakePHP 2.0

In queste domande ho visto che è possibile farlo in CakePHP 1.3:
- Using Sqlite3 with CakePHP
- How do I connect CakePHP to a SQLite database?

Tuttavia , le soluzioni non sono valide per CakePHP 2.0.

Ho configurato il file "database.php" e ho ottenuto il successo sulla pagina iniziale di CakePHP. Era in grado di connettersi al database (ma non so dove trovare il file di database .db3).

ho usato il seguente codice:

public $default = array(
    'datasource' => 'Database/Sqlite', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => '', 
    'password' => '', 
    'database' => 'cake_blog_tutorial', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

Sto cercando di scoprire:

  1. Dove dovrebbe essere il mio cake_blog_tutorial.db3 file di essere tenuto
  2. È l'origine dati diverse per SQLite3, ad esempio "Database/Sqlite3"?

Grazie per il vostro aiuto!

+2

di solito è nella cartella webroot .. prova a cercare lì il tuo file, anche io non lo so in Cake 2.0 dato che non l'ho provato ma in 1.3 devi usare sqlite3 dato che l'altro non supporta sqlite3 solo versioni precedenti ... puoi cambiare database a ../cake_blog_tutorial in modo che appaia nella cartella dell'app al posto del webroot (per impedire l'accesso dall'esterno) – api55

+0

Grazie, Api55! Tu rispondi alla mia domanda! Il file viene creato automaticamente nella cartella webroot (o nell'altra cartella relativa scelta, come nell'esempio). CakePHP supporta SQLite3, utilizzando 'Database/Sqlite'. È possibile visualizzare questa apertura della lib \ Cake \ Model \ Datasource \ Database \ Sqlite.php –

risposta

17

In breve, la risposta è che i database sqlite3 in CakePHP 2.0 prendere qualcosa come la seguente configurazione:

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => 'database_name', 
     'prefix' => '', 
     //'encoding' => 'utf8', 
); 

Il file SQLite viene creato automaticamente nella directory webroot (a meno che non si antepone un percorso relativo alla nome del database).

Per inciso, è possibile utilizzare in-memory database SQLite (per scopi di test, per esempio), cambiando il nome del database a ": la memoria:", ad esempio:

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => ':memory:', 
     'prefix' => '', 
     //'encoding' => 'utf8', 
); 
+0

Questa soluzione è valida anche per CakePHP 3 – jjz