Como trabajar con SQLite con PHP

SQLite

En este post les mostraré la manera de como pueden trabajar el lenguaje de programación PHP con una base de datos SQLite. Si estas utilizando una versión de PHP inferior a la 5.3, deberás editar el php.ini (archivo de configuración de php) para activar magic quotes a off. A partir de la versión 5.3 están desactivadas por defecto.

De acuerdo a la distribución de linux que utilices, puedes encontrar el archivo de configuración en /etc/php5/apache2/php.ini.

No olviden activar la extensión php_sqlite.

Empecemos con el primer ejemplo

En este primer ejemplo pondremos a prueba nuestra versión de la librería SQLite y la versión del lenguaje PHP que tenemos instalado.

Creamos un simple script PHP y le damos un nombre version.php. Nos colocamos en el directorio raíz de documento /var/www en mi sistema. Asegúrate de que está ejecutando el servidor apache.

header('Content-Type: text/html; charset=utf-8');   
echo "Versión de SQLite : ". sqlite_libversion(); 
echo "Versión de PHP : ". phpversion();

Con este primer script, podemos darnos cuenta si tenemos habilitado la extensión de php_sqlite mostrándose su versión.

Creando una tabla

En el siguiente script crearemos una tabla en la base de datos SQLite.

//A diferencia de una base de datos convencional, en SQLite, creamos
//archvios .db que serian nuetras tablas, por lo que lo recomendable
//es que los almacenemos en un directorio
$connect = sqlite_open('base_datos_sqlite/tabla_persona.db', 0666, $error);
if (!$connect)
die($error);
 
//SQL que queremos ejecutar.
$sql = "CREATE TABLE personas(id integer PRIMARY KEY," .
"documento_identidad text UNIQUE NOT NULL,".
"nombre_completo text NOT NULL,".
"sexo text CHECK(sexo IN ('M', 'F')))";
 
//Ejecutamos SQL
$exec = sqlite_exec($connect, $sql, $error);
 
//verificamos resultado.
if (!$exec)
die("No se pudo ejecutar el query. $error");
 
echo "Base de datos creado exitosamente";
 
//cerramos la conexion.
sqlite_close($connect);

Insertando registros

En el siguiente script ingresaremos algunos registros a nuestra tabla persona.db

//abrimos la conexion a nuestra tabla persona.db
$connect = sqlite_open('base_datos_sqlite/persona.db', 0666, $error);
 
if (!$connect)
    die($error);
 
//Armamos insert SQL
$sql = "INSERT INTO personas VALUES(1,'42548565','Carlos Prada', 'M');".
"INSERT INTO personas VALUES(2,'49542522','Jimena Casas', 'F');".
"INSERT INTO personas VALUES(3,'47542543','Gonzalo Chacaltana', 'M');";
 
$exec = sqlite_exec($connect, $sql);
if (!$exec)
    die("No se pudo ejecutar la sentencia SQL.");
 
echo "Registros ingresados exitosamente.";
 
//cerramos conexion SQLite
sqlite_close($connect);

Si tuvieras que ingresar un nombre como por ejemplo “O’Neil” (con comilla simple), deberías poder primero aplicar un scape string, por ejemplo:

$connect = sqlite_open('base_datos_sqlite/persona.db', 0666, $error);
 
if (!$connect)
    die($error);
 
$name = "Hugo O'Neill";
$name_es = sqlite_escape_string($name);
 
$sql = "INSERT INTO personas VALUES(4,'43587854', '$name_es', 'M');";
 
$exec = sqlite_exec($connect, $sql);
if (!$exec)
    die("No se pudo ejecutar la sentencia SQL.");
 
echo "Registro ingresado exitosamente.";
 
//cerramos la conexion SQLite
sqlite_close($connect);

Recuperando registros

Existen multiples formas de como recuperar los registros de nuestras tablas SQLite.

//Abriendo conexion a nuestra tabla persona.db
$connect = sqlite_open('base_datos_sqlite/persona.db', 0666, $error);
 
if (!$connect)
    die($error);
 
$query = "SELECT id,documento_identidad,nombre_completo,sexo FROM personas";
$result = sqlite_query($connect, $query);
if (!$result)
    die("No se puede ejecutar la consulta.");
 
//Obtenemos la informacion en forma de array asociativo.
$row = sqlite_fetch_array($result, SQLITE_ASSOC);
print_r($row);
echo "
";
 
//La funcion sqlite_rewind, hace que el puntero regrese al inicio del conjunto
//de resultados.
sqlite_rewind($result);
$row = sqlite_fetch_array($result, SQLITE_NUM);
print_r($row);
echo "
";
 
sqlite_rewind($result);
$row = sqlite_fetch_array($result, SQLITE_BOTH);
print_r($row);
echo "
";
 
//cerramos conexion
sqlite_close($connect);

En el siguiente ejemplo, vamos a recorrer los datos utilizando los índices asociativos.

//abrimos conexion a la tabla persona.db
$connect = sqlite_open('base_datos_sqlite/persona.db', 0666, $error);
 
if (!$connect)
    die($error);
 
$query = "SELECT id,documento_identidad,nombre_completo,sexo FROM personas";
$result = sqlite_query($connect, $query);
if (!$result)
    die("No se puede ejecutar la consulta.");
 
while ($row = sqlite_fetch_array($result, SQLITE_ASSOC)) {
    echo $row['documento_identidad'] . " : " . $row['nombre_completo'];
    echo "
";
}
 
//cerramos la conexion.
sqlite_close($connect);
Publicado por

24 x 7 Internet User, Engineer, Web & Backend Developer, IT Project Manager, University professor, Freelancer, Programming Fanatic and Kanban lover.