Servicios a usuarios

Servicios a usuarios

SQLite

Atención, abrir en una nueva ventana. PDFImprimirCorreo

SQLlite es una pequeña librería programada en lenguaje C que implementa un completo motor de base de datos multiplataforma que no precisa configuración. Se distribuye bajo licencia de dominio público. Es muy rápido y la ventaja fundamental es que permite utilizar un amplio subconjunto del lenguaje estándar SQL. SQLite destaca también por su versatilidad. El motor de PHP 5 incluye soporte interno para SQLite.

Combina el motor y el interfaz de la base de datos en una única biblioteca, y almacena los datos en un único archivo de texto plano. Esto hace que cada usuario pueda crear tantas bases de datos como desee sin la necesidad de la intervención de un administrador de bases de datos que gestione los espacios de trabajo, usuarios y permisos de acceso. El hecho de almacenar toda la base de datos en un único archivo, facilita la portabilidad de los datos, y solamente tiene la restricción del espacio de disco asignado al usuario en el servidor.

Su potencia se basa fundamentalmente en la simplicidad, lo que hace que no sea una buena solución en entornos de tráfico muy elevado y/o alto acceso concurrente a datos. SQLite encapsula toda la base de datos en un único fichero.

En su versión 3, SQLite soporta bases de datos de hasta 2 terabytes de tamaño, y también permite la inclusión de campos tipo BLOB.


Recomendaciones

Para el correcto aprovechamiento de esta utilidad es necesario por parte del usuario tener los siguientes conocimientos:

  • Creación de paginas web (HTML, etc …).
  • PHP.
  • Conocimientos de bases de datos (SQL).


Formas de uso

Podemos utilizar SQLite de dos formas:

Como gestor de base de datos local en un PC. De esta forma podemos gestionar bases de datos con SQLite igual que si estuviéramos trabajando con un sistema gestor de base de datos como MySQL sin necesidad de instalar nada, ya que SQLite se compone de un único archivo ejecutable.

Como una extensión más de PHP, utilizando las funcionalidades de SQLite configuradas, o bien como módulo de PHP, o como librería; sin necesidad de tener instalado o conectar con un servidor de base de datos. Ofrece un rápido interfaz de base de datos almacenado en archivo de texto plano.


SQLite como extensión de PHP

Una de las opciones de utilización de SQLite es como extensión de base de datos para PHP.

Esta opción, ofrece un rápido interfaz de base de datos, al igual que ofrecen otras bases de datos como MySQL, pero con la ventaja de no tener la necesidad de tener instalado o conectar con un servidor de base de datos. SQLite tiene prácticamente las mismas funcionalidades y rapidez que el resto de gestores de base de datos, y los datos se almacenan en un archivo de texto plano.

SQLite dispone de un completo interfaz orientado a objetos, con distintas funciones que nos facilitan la manipulación de datos. Funciones muy similares a las que podemos manejar con MySQL.


Funciones PHP - SQLite

A continuación mostramos una tabla con un breve resumen de las principales funciones. Para información mas detallada sobre ellas pulse en el siguiente enlace

icon Información SQLite (142.56 kB)

La siguiente es una lista de los comando fundamentales de SQLite, junto con una explicación de su funcionalidad:

sqlite_array_query Ejecuta una consulta contra una base de datos y devuelve el resultado en forma de matriz
sqlite_busy_timeout Establece la duración del temporizador de ocupado o deshabilita los temporizadores
sqlite_changes Devuelve el número de filas que se han modificado en la última sentencia SQL
sqlite_close Cierra una base de datos SQLite abierta
sqlite_column Obtiene una columna de la fila actual del resultado
sqlite_create_aggregate Registra una FDU (función definida por el usuario) de grupo normal para su uso en sentencias SQL
sqlite_create_function Registra una FDU (función definida por el usuario) normal para su uso en sentencias SQL
sqlite_current Obtiene la fila actual del resultado en forma de matriz
sqlite_error_string Devuelve la descripción del error producido a partir de un código de error
sqlite_escape_string Escapa una cadena de texto para poder usarla como parámetro en una consulta
sqlite_exec Ejecuta una consulta que no produce resultado
sqlite_factory Abre una base de datos SQLite y devuelve un objeto SQLiteDatabase
sqlite_fetch_all Obtiene todas las filas del resultado en forma de matriz de matrices
sqlite_fetch_array Obtiene la siguiente fila del resultado en forma de matriz
sqlite_fetch_column_types Obtiene una matriz con los tipos de las columnas de una tabla
sqlite_fetch_object Obtiene la siguiente fila del resultado en forma de objeto
sqlite_fetch_single Obtiene la primera columna del resultado en forma de cadena
sqlite_fetch_string Alias de sqlite_fetch_single()
sqlite_field_name Obtiene el nombre de un campo
sqlite_has_more Indica si existen más filas disponibles
sqlite_has_prev Indica si está disponible una fila anterior
sqlite_key Devuelve el índice de la fila actual
sqlite_last_error Devuelve el código de error del último error producido en la base de datos
sqlite_last_insert_rowid Devuelve el identificador de fila de la última fila insertada
sqlite_libencoding Devuelve la codificación de la librería SQLite que se está empleando
sqlite_libversion Devuelve la versión de la librería SQLite que se está empleando
sqlite_next Se desplaza hasta el siguiente número de fila
sqlite_num_fields Obtiene el número de campos de un resultado
sqlite_num_rows Obtiene el número de filas de un resultado almacenado (buffered)
sqlite_open Abre una base de datos de SQLite y la crea si no existía
sqlite_popen Abre una base de datos de SQLite de forma persistente y la crea si no existía
sqlite_prev Se desplaza hasta el anterior número de fila
sqlite_query Ejecuta una consulta sobre la base de datos y devuelve un manejador del resultado
sqlite_rewind Se desplaza hasta el primer número de fila
sqlite_seek Se desplaza hasta un determinado número de fila de un resultado almacenado (buffered)
sqlite_single_query Ejecuta una consulta y devuelve o una matriz para una columna o el valor de la primera fila
sqlite_udf_decode_binary Decodifica los datos binarios que se pasan como parámetro a las funciones FDU (función definida por el usuario)
sqlite_udf_encode_binary Codifica los datos binarios antes de devolverlos de una FDU (función definida por el usuario)
sqlite_unbuffered_query Ejecuta una consulta sobre la base de datos cuyo resultado no almacena todos los datos devueltos
sqlite_valid Indica si hay más filas disponibles en el resultado

 

Gestion de las bases de datos SQLite

Existen varias formas para gestionar las bases de datos creadas por SQLite: 

 

Ejemplos de uso

 
Creación/apertura de la base de datos


Tanto para crear como para abrir una base de datos tenemos que utilizar la siguiente funcion:

$db=sqlite_open("nombre_basedatos");

Le pasamos como parámetro el nombre de la base de datos. Si la dase de datos existe, entonces la abrirá, y si no existe la creará y la abrirá. Podemos tener tantas bases de datos como queramos. La única restricción es el espacioweb de que dispongamos en nuestro servidor.

 

Cerrar la base de datos

Para cerrar la base de datos no tenemos mas que utilizar la siguiente función, pasándole como parámetro la variable de identificación de la conexión a la base de datos:

sqlite_close($db);

 

Lanzar una sentencia SQL

Para ejecutar cualquier sentencia SQL se utiliza la función sqlite_query:

sqlite_query($db , "CREATE TABLE tabla_prueba (id INTEGER PRIMARY KEY, nombre CHAR(255))");

sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Antonio')");


Con estas sentencias creamos una tabla llamada "tabla_prueba", y con la segunda le introducimos un dato de prueba.

 

Recogida de los resultados de una consulta SQL

Las consultas SQL se realizan también utilizando la función sqlite_query:

$result = sqlite_query($db, "SELECT * FROM tabla_prueba");


El resultado se recoje en una variable de tipo array, la cual podremos manipular a nuestro antojo.

 

Impresión por pantalla de los valores de un array

Para este ejemplo aprovecharemos la variable de tipo array anterior, donde hemos guardado los resultados de la consulta SQL.

while ($row = sqlite_fetch_array($result)) {
echo "ID --> ".$row["id"]." Nombre --> ". $row["nombre"]."<br>";
}


A continuación vamos a mostrar un ejemplo completo de utilización de la base de datos:

<?
// creamos una conexión la base de datos(le introducimos el nombre del archive donde se almacena)
$db = sqlite_open("nombre.bd");

// Utilizar la siguiente línea sólo si se necesita crear la tabla
sqlite_query($db , "CREATE TABLE tabla_prueba (id INTEGER PRIMARY KEY, nombre CHAR(255))");

// inserción de registros
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Antonio')");
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Pedro')");
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Sara')");

// ejecución de consulta de selección
$result = sqlite_query($db, "SELECT * FROM tabla_prueba ");
// muestra de los resultados con un bucle
while ($row = sqlite_fetch_array($result)) {
echo "ID --> ".$row["id"]." Nombre --> ". $row["nombre"]."<br>";
}
// se sierra la conexión a la base de datos
sqlite_close($db);
?>


Resultado del ejemplo anterior

ID --> 16 Nombre --> Antonio
ID --> 17 Nombre --> Pedro
ID --> 18 Nombre --> Sara

 

Enlaces útiles

http://es.wikipedia.org/wiki/SQLite

http://php.net/manual/es/ref.pdo-sqlite.php (introducción acerca de la extensión de SQLite para PHP5).

http://necudeco.blogsome.com/2005/08/31/sqlite-con-csharp/ (ejemplos de código con SQLite).

ARRIBA