SQLite - PHP

En este capítulo, aprenderá a usar SQLite en programas PHP.

Instalación

La extensión SQLite3 está habilitada de forma predeterminada a partir de PHP 5.3.0. Es posible deshabilitarlo usando--without-sqlite3 en tiempo de compilación.

Los usuarios de Windows deben habilitar php_sqlite3.dll para poder usar esta extensión. Esta DLL se incluye con las distribuciones de PHP de Windows a partir de PHP 5.3.0.

Para obtener instrucciones de instalación detalladas, consulte nuestro tutorial de PHP y su sitio web oficial.

API de interfaz PHP

A continuación se presentan importantes rutinas de PHP que pueden ser suficientes para trabajar con la base de datos SQLite desde su programa PHP. Si está buscando una aplicación más sofisticada, puede consultar la documentación oficial de PHP.

No Señor. API y descripción
1

public void SQLite3::open ( filename, flags, encryption_key )

Abre la base de datos SQLite 3. Si la compilación incluye cifrado, intentará utilizar la clave.

Si el nombre del archivo se da como':memory:', SQLite3 :: open () creará una base de datos en memoria en RAM que durará solo el tiempo que dure la sesión.

Si el nombre del archivo es el nombre del archivo del dispositivo real, SQLite3 :: open () intenta abrir el archivo de la base de datos utilizando su valor. Si no existe ningún archivo con ese nombre, se crea un nuevo archivo de base de datos con ese nombre.

Indicadores opcionales que se utilizan para determinar cómo abrir la base de datos SQLite. Por defecto, open usa SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

2

public bool SQLite3::exec ( string $query )

Esta rutina proporciona una forma rápida y sencilla de ejecutar comandos SQL proporcionados por el argumento sql, que puede constar de más de un comando SQL. Esta rutina se utiliza para ejecutar una consulta sin resultados en una base de datos determinada.

3

public SQLite3Result SQLite3::query ( string $query )

Esta rutina ejecuta una consulta SQL, devolviendo un SQLite3Result objeto si la consulta devuelve resultados.

4

public int SQLite3::lastErrorCode ( void )

Esta rutina devuelve el código de resultado numérico de la solicitud SQLite fallida más reciente.

5

public string SQLite3::lastErrorMsg ( void )

Esta rutina devuelve texto en inglés que describe la solicitud SQLite fallida más reciente.

6

public int SQLite3::changes ( void )

Esta rutina devuelve el número de filas de la base de datos que se actualizaron, insertaron o eliminaron mediante la declaración SQL más reciente.

7

public bool SQLite3::close ( void )

Esta rutina cierra una conexión de base de datos previamente abierta por una llamada a SQLite3 :: open ().

8

public string SQLite3::escapeString ( string $value )

Esta rutina devuelve una cadena que se ha escapado correctamente para su inclusión segura en una declaración SQL.

Conectarse a la base de datos

El siguiente código PHP muestra cómo conectarse a una base de datos existente. Si la base de datos no existe, se creará y finalmente se devolverá un objeto de base de datos.

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db) {
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
?>

Ahora, ejecutemos el programa anterior para crear nuestra base de datos. test.dben el directorio actual. Puede cambiar su ruta según sus necesidades. Si la base de datos se ha creado correctamente, mostrará el siguiente mensaje:

Open database successfully

Crear una tabla

El siguiente programa PHP se utilizará para crear una tabla en la base de datos creada anteriormente.

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db) {
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;

   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Table created successfully\n";
   }
   $db->close();
?>

Cuando se ejecuta el programa anterior, creará la tabla EMPRESA en su test.db y mostrará los siguientes mensajes:

Opened database successfully
Table created successfully

INSERTAR Operación

El siguiente programa PHP muestra cómo crear registros en la tabla EMPRESA creada en el ejemplo anterior.

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;

   $ret = $db->exec($sql);
   if(!$ret) {
      echo $db->lastErrorMsg();
   } else {
      echo "Records created successfully\n";
   }
   $db->close();
?>

Cuando se ejecuta el programa anterior, creará los registros dados en la tabla EMPRESA y mostrará las siguientes dos líneas.

Opened database successfully
Records created successfully

SELECCIONAR Operación

El siguiente programa PHP muestra cómo buscar y mostrar registros de la tabla EMPRESA creada en el ejemplo anterior:

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   
   $db = new MyDB();
   if(!$db) {
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;

   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ".$row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

Cuando se ejecuta el programa anterior, producirá el siguiente resultado.

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000

Operation done successfully

Operación ACTUALIZAR

El siguiente código PHP muestra cómo usar la instrucción UPDATE para actualizar cualquier registro y luego buscar y mostrar los registros actualizados de la tabla EMPRESA.

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   
   $db = new MyDB();
   if(!$db) {
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = $db->exec($sql);
   if(!$ret) {
      echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record updated successfully\n";
   }

   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ".$row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

Cuando se ejecuta el programa anterior, producirá el siguiente resultado.

Opened database successfully
1 Record updated successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000

Operation done successfully

Operación DELETE

El siguiente código PHP muestra cómo usar la instrucción DELETE para eliminar cualquier registro y luego buscar y mostrar los registros restantes de la tabla EMPRESA.

<?php
   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('test.db');
      }
   }
   
   $db = new MyDB();
   if(!$db) {
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID = 2;
EOF;
   
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record deleted successfully\n";
   }

   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ) {
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ".$row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

Cuando se ejecuta el programa anterior, producirá el siguiente resultado.

Opened database successfully
1 Record deleted successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000

Operation done successfully