2011-04-01 55 views
5

He intentado conectar la base de datos utilizando PHP PDO. Tengo muchas muestras, no estoy seguro de qué fue problema.cómo conectar una base de datos sqlite usando PHP?

a continuación es mi código

<?php 
    try 
    { 
     // $db = new PDO('sqlite:sampleDB.db3'); 
     // $db = new SQLiteDatabase('sampleDB.sqlite', 0666, $error); 
     $db = new PDO('sqlite:sampleDB.sqlite'); 
    } 
    catch(PDOException $e) 
    { 
     echo $e->getMessage(); 
    } 
?> 

he intentado muchas manera de abrir una conexión. por favor dígame la forma correcta ...

+0

¿Hay algún mensaje de error que haya recibido? –

+0

¿Qué error obtienes? – SergeS

+0

es que yo o hay algunas estrellas después de $ db = new PDO ('sqlite: sampleDB.sqlite'); línea? si no me va a tener un error de análisis ... – yent

Respuesta

1

En primer lugar, querrá asegurarse de que tiene PHP configurado para conectarse a SQLite - use phpinfo() para verificar y asegúrese de tener habilitado el soporte SQLite.

A continuación, querrá usar la sintaxis adecuada cuando intente conectarse y consultar en una base de datos SQLite. Según PHP Manual for sqllite p.

<?php 

    if ($db = sqlite_open('sampleDB', 0666, $sqliteerror)) { 
     $result = sqlite_query($db, 'select bar from foo'); 
     var_dump(sqlite_fetch_array($result)); 
    } else { 
     die($sqliteerror); 
    } 

?> 
+0

intenté conectar/crear la base de datos en la memoria. funciona. $ db = nuevo PDO ("sqlite :: memory"); – ayathas

+0

mismo código que he ejecutado. recibo el mensaje de error "no se puede abrir la base de datos" – ayathas

+0

¿Ha comprobado phpinfo() para asegurarse de que la compatibilidad con SQLLite esté habilitada? –

5

Dejé de usar el controlador PDO y usé el módulo sqlite3 en su lugar por las mismas razones.

Con el módulo del sqlite3:

class DB extends SQLite3 
{ 
     function __construct($file) 
     { 
      $this->open($file); 
     } 
} 

$db = new DB('sampleDB.sqlite'); 

Yo sé que no es una solución para su problema, pero si algo no funciona, esto podría ser útil.

+0

¿Cómo consulta la base de datos utilizando este tipo de conexión? – ST3

+0

http://php.net/manual/en/book.sqlite3.php – petermolnar

1

El directorio donde se encuentra el archivo sql debe ser de escritura del servidor. Intenta crear un directorio separado solo para SQLite y dale acceso apropiado. En Unix puedes hacerlo ejecutando chmod 777 dirname. Además, modifique su DSN al 'sqlite:dirname/sampleDB.sqlite'.

+0

Todavía recibo el mensaje de error. SQLSTATE [HY000] [14] no se puede abrir el archivo de base de datos – ayathas

+0

así es como cambié mi código. $ dbh = nuevo PDO ('sqlite: myDir/sampleDB.sqlite'); – ayathas

Cuestiones relacionadas