SQLite 2.8.14 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 (enlace con el pdf donde se explican las funciones) sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_exec sqlite_factory sqlite_fetch_all sqlite_fetch_array sqlite_fetch_column_types sqlite_fetch_object sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_has_prev sqlite_key sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen Ejecuta una consulta contra una base de datos y devuelve el resultado en forma de matriz Establece la duración del temporizador de ocupado o deshabilita los temporizadores Devuelve el número de filas que se han modificado en la última sentencia SQL Cierra una base de datos SQLite abierta Obtiene una columna de la fila actual del resultado Registra una FDU (función definida por el usuario) de grupo normal para su uso en sentencias SQL Registra una FDU (función definida por el usuario) normal para su uso en sentencias SQL Obtiene la fila actual del resultado en forma de matriz Devuelve la descripción del error producido a partir de un código de error Escapa una cadena de texto para poder usarla como parámetro en una consulta Ejecuta una consulta que no produce resultado Abre una base de datos SQLite y devuelve un objeto SQLiteDatabase Obtiene todas las filas del resultado en forma de matriz de matrices Obtiene la siguiente fila del resultado en forma de matriz Obtiene una matriz con los tipos de las columnas de una tabla Obtiene la siguiente fila del resultado en forma de objeto Obtiene la primera columna del resultado en forma de cadena Alias de sqlite_fetch_single() Obtiene el nombre de un campo Indica si existen más filas disponibles Indica si está disponible una fila anterior Devuelve el índice de la fila actual Devuelve el código de error del último error producido en la base de datos Devuelve el identificador de fila de la última fila insertada Devuelve la codificación de la librería SQLite que se está empleando Devuelve la versión de la librería SQLite que se está empleando Se desplaza hasta el siguiente número de fila Obtiene el número de campos de un resultado Obtiene el número de filas de un resultado almacenado (buffered) Abre una base de datos de SQLite y la crea si no existía Abre una base de datos de SQLite de forma persistente y la sqlite_prev sqlite_query sqlite_rewind sqlite_seek sqlite_single_query sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query sqlite_valid crea si no existía Se desplaza hasta el anterior número de fila Ejecuta una consulta sobre la base de datos y devuelve un manejador del resultado Se desplaza hasta el primer número de fila Se desplaza hasta un determinado número de fila de un resultado almacenado (buffered) Ejecuta una consulta y devuelve o una matriz para una columna o el valor de la primera fila Decodifica los datos binarios que se pasan como parámetro a las funciones FDU (función definida por el usuario) Codifica los datos binarios antes de devolverlos de una FDU (función definida por el usuario) Ejecuta una consulta sobre la base de datos cuyo resultado no almacena todos los datos devueltos 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: • Aplicaciones web como SQLite Manager. Tambien existen otras aplicaciones web de código libre en la red. (http://www.sqlitemanager.org/ ) • Desde la consola de usuario. ( http://www.sqlite.org ) 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://www.sqlite.org/ Sitio Oficial de SQLite (en inglés) • http://www.zend.com/php5/articles/php5-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 codigo con SQLite • http://www.sqlitemanager.org/ Web oficial de la aplicación SQLiteManager