Palentino Blog

SQLite en PHP, bases de datos incorporadas. Historia y ejemplo.

Cuando D. Richard Hipp trabajaba desarrollando software para la fuerza naval de los Estados Unidos, comenzó a desarrollar SQLite …

«El proyecto SQLite surgió de una necesidad personal, para mi propio uso.»

SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB)  biblioteca escrita en C.

SQLite es un proyecto de dominio público.

Veamos algo de su Historia y algún ejemplo …

En enero de 2000 D. Richard Hipp estaba trabajando con su equipo de la General Dynamics en la Fuerza naval de los Estados Unidos, en un proyecto de software, el cual se conectaba a una base de datos Informix, el motor funcionaba muy bien, pero habían tenido problemas para hacer una reconfiguración cuando el sistema se reiniciaba. Luego cambiaron a PostgreSQL, pero administrar la base de datos era un poco más complejo. Fue en ese momento cuando surgió la idea de escribir un simple motor de base de datos SQL que permitiera leer los archivos del disco duro, y luego ser llamados en diferentes solicitudes.

Cinco meses más tarde comenzó a escribir las primeras versiones de lo que hoy conocemos como SQLite, con el pensamiento de que sería útil en algún problema similar.

Razones de su uso como herramienta de desarrollo:

En la versión 4 de PHP, SQLite se podía utilizar como base de datos instalando un módulo PECL.

A partir de la versión 5 de PHP, SQLite está incluido en PHP, por lo que está disponible sin necesidad de realizar ninguna instalación adicional.

Los nombres de las funciones de php que permiten utilizar SQLite en PHP empiezan por sqlite_ y son similares a los que permiten acceder otras bases de datos utilizables desde PHP (mysql, postgresql, etc).

El manual de PHP incluye un capítulo dedicado a SQLite.

Ejemplo de versión:

<?php
print "<p>Versión PHP: ".phpversion()."</p>";
print "<p>Versión SQLite: ".sqlite_libversion()."</p>";
print "<p>Codificación: ".sqlite_libencoding()."</p>";
?>

En el ejemplo siguiente, la variable $caminodb almacena la ruta donde se encuentra la base de datos y la variable $db el manejador de la base de datos.

<?php
$caminodb = $_SERVER['DOCUMENT_ROOT']."db\\prueba01.db";
$db = sqlite_open($caminodb) or die("No puedo abrir la base de datos ");
?>

Crear una tabla:

<?php
sqlite_query($db, "CREATE TABLE personas(id INTEGER PRIMARY KEY, nombre, apellidos)");
?>

Borrar una tabla:

<?php
sqlite_query($db, "DROP TABLE personas");
?>

Añadir registros:

<?php
sqlite_query($db, "INSERT INTO personas values (NULL , 'Oscar' , 'de la cuesta')" );
?>

Insertar texto

<?php
$apellido = ($_REQUEST['apellido'] == "") ? "" : sqlite_escape_string($_REQUEST['apellido']);
sqlite_query($db, "INSERT INTO personas values (NULL, 'de la Cuesta' , '$apellido')" );
?>

Modificar registros:

<?php
sqlite_query($db, "UPDATE personas SET nombre = 'Oscar', apellidos = 'de la cuesta' WHERE id = '4'");
?>

Borrar un registro

<?php
sqlite_query($db, "DELETE FROM personas WHERE id = '1'");
?>

Consultar una tabla:

<?php
$resultado = sqlite_array_query($db, "SELECT * FROM personas ORDER BY apellidos DESC", SQLITE_ASSOC);
?>

Más información: http://es.wikipedia.org/wiki/SQLite

Salir de la versión móvil