SQLite – PHP

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

Instalación

La extensión SQLite3 está habilitada de forma predeterminada desde PHP 5.3.0. Puede desactivarse usando –sin sqlite3 en tiempo de compilación.

Los usuarios de Windows deben habilitar php_sqlite3.dll para usar esta extensión. Esta DLL se ha incluido en las distribuciones de PHP para Windows desde 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 muestran las rutinas PHP importantes que pueden satisfacer sus requisitos para trabajar con una base de datos SQLite desde su programa PHP. Si está buscando una aplicación más compleja, puede echar un vistazo a la documentación oficial de PHP.

No Señor. API y descripción
una

public void SQLite3 :: open (nombre de archivo, banderas, clave_encriptación)

Abre una base de datos SQLite 3. Si el ensamblaje incluye cifrado, intentará usar la clave.

Si un Nombre del archivo dado como ‘:Memoria:’SQLite3 :: open () creará una base de datos en memoria que solo existe durante la sesión.

Si el nombre del archivo es el nombre real del archivo del dispositivo, SQLite3 :: open () intenta abrir el archivo de la base de datos usando su valor. Si no existe un 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 (cadena $ consulta)

Este procedimiento proporciona una forma rápida y sencilla de ejecutar comandos SQL proporcionados por el argumento sql, que puede constar de varios comandos SQL. Este procedimiento se utiliza para ejecutar una consulta sin resultado en una base de datos determinada.

3

público SQLite3Result SQLite3 :: consulta (cadena $ consulta)

Este procedimiento ejecuta la consulta SQL, devolviendo SQLite3Result un objeto si la consulta devuelve resultados.

cuatro

public int SQLite3 :: lastErrorCode (void)

Este procedimiento devuelve el código de resultado numérico de la última consulta SQLite fallida.

cinco

cadena pública SQLite3 :: lastErrorMsg (void)

Este procedimiento devuelve texto en inglés que describe la última consulta SQLite fallida.

6

public int SQLite3 :: cambios (no válido)

Este procedimiento 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 (no válido)

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

8

público SQLite3 :: escapeString (cadena $ valor)

Este procedimiento 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 successfullyn";
   }
?>

Ahora ejecutemos el programa anterior para crear nuestra base de datos. test.db en el directorio actual. Puede cambiar su ruta de acuerdo con sus requisitos. Si la base de datos se crea correctamente, se mostrará el siguiente mensaje:

Open database successfully

Crear mesa

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

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

   $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 successfullyn";
   }
   $db->close();
?>

Cuando se ejecuta el programa anterior, creará una 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 successfullyn";
   }

   $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 successfullyn";
   }
   $db->close();
?>

Cuando se ejecuta el programa anterior, creará los registros especificados 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 recuperar 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 successfullyn";
   }

   $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'] ."nn";
   }
   echo "Operation done successfullyn";
   $db->close();
?>

Cuando se ejecuta el programa anterior, dará la siguiente salida.

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 recuperar 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 successfullyn";
   }
   $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 successfullyn";
   }

   $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'] ."nn";
   }
   echo "Operation done successfullyn";
   $db->close();
?>

Cuando se ejecuta el programa anterior, dará la siguiente salida.

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 BORRAR

El siguiente código PHP muestra cómo usar la instrucción DELETE para eliminar cualquier registro y luego recuperar 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 successfullyn";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID = 2;
EOF;
   
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record deleted successfullyn";
   }

   $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'] ."nn";
   }
   echo "Operation done successfullyn";
   $db->close();
?>

Cuando se ejecuta el programa anterior, dará la siguiente salida.

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

🚫