SQLite - PHP
Instalación
Desde PHP 5.3.0, la extensión SQLite3 está habilitada de forma predeterminada. Se puede deshabilitar en tiempo de compilación con--without-sqlite3deshabilitar la extensión SQLite3.
Los usuarios de Windows deben habilitar php_sqlite3.dll para usar esta extensión. Desde PHP 5.3.0, este DLL se incluye en la distribución de Windows de PHP.
Para obtener instrucciones de instalación detalladas, le sugerimos consultar nuestro tutorial de PHP y su sitio web oficial.
Interfaz API de PHP
Los siguientes son programas PHP importantes que pueden satisfacer sus necesidades de usar la base de datos SQLite en sus programas PHP. Si necesita más detalles, consulte la documentación oficial de PHP.
| N.º | API y descripción |
|---|---|
| 1 | public void SQLite3::open ( filename, flags, encryption_key ) Abre una base de datos SQLite 3. Si la compilación incluye cifrado, intentará usar la clave. Si el nombre de archivofilenamese asigna a':memory:', entonces SQLite3::open() creará una base de datos en memoria en RAM, que solo durará mientras la sesión esté activa. Si el nombre de archivo filename es el nombre real de un archivo de dispositivo, entonces SQLite3::open() usará este valor de parámetro para intentar abrir el archivo de base de datos. Si no existe un archivo con ese nombre, se creará un nuevo archivo de base de datos con ese nombre. Los flags opcionales se usan para determinar si se abre la base de datos SQLite. De forma predeterminada, se abre con SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE. |
| 2 | public bool SQLite3::exec ( string $query ) Esta rutina proporciona un método abreviado para ejecutar comandos SQL, proporcionados por el parámetro sql, que pueden constar de varios comandos SQL. Este programa se utiliza para ejecutar una consulta sin resultados en la base de datos dada. |
| 3 | public SQLite3Result SQLite3::query ( string $query ) Esta rutina ejecuta una consulta SQL; si la consulta devuelve un resultado, devuelve unSQLite3Resultobjeto. |
| 4 | public int SQLite3::lastErrorCode ( void ) Esta rutina devuelve el código de resultado numérico de la última solicitud SQLite fallida. |
| 5 | public string SQLite3::lastErrorMsg ( void ) Esta rutina devuelve la descripción textual en inglés de la última solicitud SQLite fallida. |
| 6 | public int SQLite3::changes ( void ) Esta rutina devuelve el número de filas de la base de datos que fueron actualizadas, insertadas o eliminadas por la última declaración SQL. |
| 7 | public bool SQLite3::close ( void ) Esta rutina cierra la conexión de base de datos abierta anteriormente con SQLite3::open(). |
| 8 | public string SQLite3::escapeString ( string $value ) Esta rutina devuelve una cadena que ha sido correctamente escapada en la declaración SQL por razones de seguridad. |
Conectar 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 en el directorio actualtest.db. Puede cambiar la ruta según sea necesario. Si la base de datos se crea correctamente, se mostrará el mensaje que se muestra a continuación:
Open database successfully
Crear tabla
El siguiente fragmento de código PHP se utiliza 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, crea la tabla COMPANY entest.dby muestra el mensaje que se muestra a continuación:
Opened database successfully Table created successfully
Operación INSERT
El siguiente programa PHP muestra cómo crear registros en la tabla COMPANY 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
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, crea los registros dados en la tabla COMPANY y mostrará las dos líneas siguientes:
Opened database successfully Records created successfully
Operación SELECT
El siguiente programa PHP muestra cómo obtener y mostrar registros de la tabla COMPANY 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
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, produce 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 UPDATE
El siguiente código PHP muestra cómo usar la declaración UPDATE para actualizar cualquier registro y luego obtener y mostrar los registros actualizados de la tabla COMPANY:
<?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, produce 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 declaración DELETE para eliminar cualquier registro y luego obtener y mostrar los registros restantes de la tabla COMPANY:
<?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, produce 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 successfullyOtras extensiones