PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 22 Aug 2008

view this page in

sqlite_open

(PHP 5, PECL sqlite:1.0-1.0.3)

sqlite_openAbre una base de datos de SQLite y la crea si no existía

Descripción

resource sqlite_open ( string $nombre_archivo [, int $modo [, string &$mensaje_error ]] )

(Constructor) según el estilo orientado a objetos:

SQLiteDatabase
__construct ( string $nombre_archivo [, int $modo [, string &$mensaje_error ]] )

Abre una base de datos de SQLite o la crea si no existía

Lista de parámetros

nombre_archivo

El nombre de archivo de la base de datos de SQLite. Si el archivo no existe, SQLite intenta crearlo. PHP debe tener permisos de escritura en el archivo si se van a insertar datos, si el esquema de la base de datos se modifica o si se va a crear la propia base de datos por no existir.

modo

El modo del archivo, que se emplea para abrir la base de datos en modo solo lectura. Actualmente, la librería sqlite ignora este parámetro. El valor por defecto en formato octal es 0666, que además es el valor recomendado.

mensaje_error

Se pasa por referencia y contiene un mensaje de error descriptivo que explica el motivo por el que no se pudo abrir la base de datos.

Valores retornados

Devuelve un recurso en caso de éxito (que realmente es un manejador de base de datos) o FALSE en caso de error.

Ejemplos

Example #1 Ejemplo de sqlite_open()

<?php
if ($db sqlite_open('mysqlitedb'0666$sqlite_error)) { 
    
sqlite_query($db'CREATE TABLE prueba (nombre varchar(10))');
    
sqlite_query($db"INSERT INTO prueba VALUES ('prueba_de_nombre')");
    
$resultado sqlite_query($db'select nombre from prueba');
    
var_dump(sqlite_fetch_array($resultado)); 
} else {
    die(
$sqlite_error);
}
?>

Notes

Tip

En sistemas Unix, SQLite puede tener problemas con scripts que hacen uso de llamadas a fork(). Los scripts que realicen ese tipo de llamadas, deberín cerrar el manejador antes de realizar el fork() y volver a abrirlo en el proceso hijo y/o en el proceso padre original. Para más información sobre este asunto, vea la » La interfaz de C a la librería de SQLite y en concreto la sección Multi-Threading And SQLite (SQLite y los procesos con múltiples hilos de ejecución).

Tip

No se recomienda utilizar bases de datos SQLite montadas sobre particiones NFS. Como es sabido, NFS tiene un comportamiento con los bloqueos bastante deficiente, lo que puede provocar que no se puedan abrir bases de datos o que el comportamiento con las que estén abiertas sea impredecible debido al bloqueo.

Note: Desde la versión 2.8.2 de la librería SQLite, se puede indicar como nombre_archivo el valor :memory:, con lo que se creará la base de datos en la memoria del sistema. Este tipo de bases de datos son útiles cuando se necesita realizar un procesamiento temporal, ya que las bases de datos residentes en memoria se eliminan cuando termina la ejecución del proceso. También puede ser útil cuando se emplea junto con la sentencia SQL ATTACH DATABASE, de forma que se puedan cargar bases de datos y mover y consultar datos entre ellas.

Note: SQLite es safe mode y está preparada para el "open_basedir".



sqlite_popen> <sqlite_num_rows
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
sqlite_open
simplersolution at gmail dot com
07-Dec-2007 03:46
I found that both the file and the directory it is in have to be writeable by the web server, or an ambiguous "unable to open database file" error appears (pecl 1.0.3).  I pulled my hair out for ages before I realised that.
Phillip Berndt
02-Mar-2007 03:52
If you miss to set the permissions mentioned by ivoras Sqlite will drop an error message saying "Malformed database scheme", which is somehow misleading.

(I mentioned this as some [I did] might search php.net for this error message)
15-Nov-2006 11:45
the above example dows not! work since sqlite_query() does not accept one argument, but only 2.

so correct is:

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
 
sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
 
sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
 
$result = sqlite_query($db,'select bar from foo');
 
var_dump(sqlite_fetch_array($result));
} else {
  die (
$sqliteerror);
}
?>
ivoras at fer dot hr
26-May-2004 07:46
Since sqlite uses a journal to do updates and inserts (and creates it on the fly), you ALSO must have write permissions set for the web server to write in the same DIRECTORY as the database file.

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites