Se trata de una extensión que permite emplear el motor de base de datos embebible SQLite. SQLite es una biblioteca de C que implementa un motor de base de datos SQL embebible. Las aplicaciones que emplean la biblioteca de SQLite pueden emplear bases de datos sin necesidad de instalar un motor de bases datos externo.
SQLite no es una biblioteca cliente para acceder a un servidor de bases datos. El propio SQLite es el servidor de base datos. La biblioteca SQLite lee y escribe directamente sobre los archivos de la base de datos que se encuentran en el disco.
Note: Para más información puede acceder al sitio web oficial de SQLite: » http://sqlite.org/.
Lea el archivo INSTALL que viene con el paquete o utilice el instalador de PEAR con el siguiente comando "pear install sqlite". El propio SQLite ya está incluido, así que no es necesario instalar ningún programa adicional.
Los usuarios de Windows pueden descargar el archivo DLL de la extensión SQLite en esta dirección: (» php_sqlite.dll).
En PHP 5, la extensión SQLite y el propio motor de bases de datos está incluido y compilado por defecto.
Note: Instalación en Windows con cuentas de usuario sin privilegios En los sistemas operativos Windows, las cuentas sin privilegios no tienen la variable de entorno TMP establecida por defecto. Por este motivo, SQLite creará los archivos temporales en el directorio de Windows, lo que no es muy recomendable. La solución pasa por crear una variable de entorno llamada TMP para el servidor web o para la cuenta de usuario con la que se ejecuta el servidor web. Si el servidor empleado es Apache, puede establecerse esta variable mediante la directiva SetEnv del archivo de configuración httpd.conf. Por ejemplo:
Si no es posible establecer la variable a nivel de servidor, se puede realizar en el mismo script:SetEnv TMP c:/tempLa configuración debe hacer referencia a un directorio en el que el servidor web tenga permisos para crear archivos y por tanto para escribir y borrar los archivos creados. Si no tiene los permisos adecuados, se mostrará el siguiente mensaje de error: malformed database schema - unable to open a temporary database file for storing temporary tablesputenv('TMP=C:/temp');
Para poder utilizar estas funciones, se debe compilar PHP con soporte para SQLite o cargar la extensión SQLite de forma dinámica desde el archivo php.ini.
La interfaz de SQLite utiliza 2 recursos: el primero es de la conexión con la base de datos y el segundo es el resultado.
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
Las funciones sqlite_fetch_array() y sqlite_current() emplean una constante para seleccionar los diferentes tipos de matrices del resultado. Los diferentes constantes definidas son las siguientes:
Algunas funciones devuelven códigos de estado. Se han definido los siguientes códigos:
Representa una base de datos de SQLite abierta.
__construct - construye un nuevo objeto de tipo SQLiteDatabase
query - Ejecuta una consulta
queryExec - Ejecuta una consulta sin resultado
arrayQuery - Ejecuta una consulta y devuelve el resultado como una matriz
singleQuery - Ejecuta una consulta y devuelve o una matriz para una columna o el valor de la primera fila
unbufferedQuery - Ejecuta una consulta que devuelve el resultado de forma inmediata (unbuffered)
lastInsertRowid - Devuelve el identificador de la última fila que se ha insertado
changes - Devuelve el número de filas que se han modificado tras la última sentencia SQL
createAggregate - Registra una FDU (Función Definida por el Usuario) empleada para agregar resultados en las sentencias SQL
createFunction - Registra una FDU (Función Definida por el Usuario) para emplearla en las sentencias SQL
busyTimeout - Establece el valor o deshabilita la duración del temporizador de ocupado
lastErorr - Devuelve el último código de error del último error producido
fetchColumnTypes - Devuelve una matriz con los tipos de las columnas de una tabla determinada
Representa un resultado almacenado (buffered) de SQLite
fetch - Obtiene la siguiente fila del resultado y la devuelve como una matriz
fetchObject - Obtiene la siguiente fila del resultado y la devuelve como un objeto
fetchSingle - Obtiene la primera columna del resultado y la devuelve en una cadena
fetchAll - Obtiene todas las filas del resultado y las devuelve como una matriz de matrices
column - Obtiene una columna de la fila actual del resultado
numFields - Obtiene el n´mero de campos del resultado
fieldName - Obtiene el nombre de un campo del resultado
current - Obtiene la fila actual del resultado y la devuelve como una matriz
key - Obtiene el índice de la fila actual
next - Se desplaza hasta el siguiente número de fila
valid - Indica si hay disponibles más filas
rewind - Se desplaza hasta el primer número de fila del resultado
prev - Se desplaza hasta el anterior número de fila
hasPrev - Indica si hay disponible alguna fila anterior
numRows - Obtiene el n´mero de filas en el resultado
seek - Se desplaza hasta un determinado número de fila
Representa un resultado no almacenado (unbuffered) de SQLite. Los resultados no almacenados son secuenciales y por tanto solamente se puede avanzar en ellos (no retroceder).
fetch - Obtiene la siguiente fila del resultado y la devuelve como una matriz
fetchObject - Obtiene la siguiente fila del resultado y la devuelve como un objeto
fetchSingle - Obtiene la primera columna del resultado y la devuelve en una cadena
fetchAll - Obtiene todas las filas del resultado y las devuelve como una matriz de matrices
column - Obtiene una columna de la fila actual del resultado
numFields - Obtiene el n´mero de campos del resultado
fieldName - Obtiene el nombre de un campo del resultado
current - Obtiene la fila actual del resultado y la devuelve como una matriz
next - Se desplaza hasta el siguiente número de fila
valid - Indica si hay disponibles más filas
El comportamiento de estas funciones está afectado por los valores definidos en php.ini.
Name | Default | Changeable | Registro de cambios |
---|---|---|---|
sqlite.assoc_case | "0" | PHP_INI_ALL | Disponible desde PHP 5.0.0. |
A continuación se presenta una corta explicación de las directivas de configuración.
Uso de índices hash sin distinguir mayúsculas y minúsculas (0), solo mayúsculas (1) o solo minúsculas(2).
Esta opción se emplea cuando se requiere compatibilidad con otros sistemas de bases de datos, donde los nombres de las columnas siempre se devuelven o en mayúsculas o en minúsculas, independientemente de la forma en la que se almacenan los nombres de los campos en el esquema de la base de datos.
La librería SQLite devuelve el nombre de las columnas tal y como aparecen en el esquema de base de datos. Si el valor de sqlite.assoc_case es 0, se mantendrán los nombres originales. Si se pone a 1 o a 2, PHP convertirá los nombres originales a mayúsculas o en minúsculas respectivamente.
El uso de esta opción introduce una pequeña penalización en el rendimiento, pero es significativamente más rápida que hacerlo manualmente en el script de PHP.