SQLite - PHP
Installation
Seit PHP 5.3.0 ist die SQLite3-Erweiterung standardmäßig aktiviert. Sie können--without-sqlite3verwenden, um die SQLite3-Erweiterung zu deaktivieren.
Windows-Benutzer müssen php_sqlite3.dll aktivieren, um diese Erweiterung zu verwenden. Seit PHP 5.3.0 ist diese DLL in der Windows-Distribution von PHP enthalten.
Für ausführliche Installationsanweisungen wird empfohlen, unser PHP-Tutorial und seine offizielle Website anzusehen.
PHP-Schnittstellen-API
Im Folgenden finden Sie wichtige PHP-Programme, die Ihren Bedarf für die Verwendung von SQLite-Datenbanken in PHP-Programmen decken können. Wenn Sie weitere Details benötigen, lesen Sie bitte die offizielle PHP-Dokumentation.
| Nein. | API & Beschreibung |
|---|---|
| 1 | public void SQLite3::open ( filename, flags, encryption_key ) Öffnet eine SQLite-3-Datenbank. Wenn der Build Verschlüsselung enthält, wird versucht, den Schlüssel zu verwenden. Wenn der Dateinamefilenameauf':memory:'gesetzt ist, dann erstellt SQLite3::open() eine In-Memory-Datenbank im RAM, die nur für die Dauer der Sitzung besteht. Wenn der Dateiname filename ein tatsächlicher Gerätedateiname ist, verwendet SQLite3::open() diesen Parameterwert, um zu versuchen, die Datenbankdatei zu öffnen. Wenn eine Datei mit diesem Namen nicht vorhanden ist, wird eine neue Datenbankdatei mit diesem Namen erstellt. Die optionalen Flags werden verwendet, um zu bestimmen, ob die SQLite-Datenbank geöffnet wird. Standardmäßig wird sie geöffnet, wenn SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE verwendet wird. |
| 2 | public bool SQLite3::exec ( string $query ) Diese Routine bietet eine Abkürzung zum Ausführen von SQL-Befehlen, die durch den sql-Parameter bereitgestellt werden und aus mehreren SQL-Befehlen bestehen können. Dieses Programm wird verwendet, um eine ergebnislose Abfrage auf einer gegebenen Datenbank auszuführen. |
| 3 | public SQLite3Result SQLite3::query ( string $query ) Diese Routine führt eine SQL-Abfrage aus und gibt einSQLite3Result-Objekt zurück. |
| 4 | public int SQLite3::lastErrorCode ( void ) Diese Routine gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anfrage zurück. |
| 5 | public string SQLite3::lastErrorMsg ( void ) Diese Routine gibt die englische Textbeschreibung der letzten fehlgeschlagenen SQLite-Anfrage zurück. |
| 6 | public int SQLite3::changes ( void ) Diese Routine gibt die Anzahl der Datenbankzeilen zurück, die durch die letzte SQL-Anweisung aktualisiert, eingefügt oder gelöscht wurden. |
| 7 | public bool SQLite3::close ( void ) Diese Routine schließt die Datenbankverbindung, die zuvor durch Aufruf von SQLite3::open() geöffnet wurde. |
| 8 | public string SQLite3::escapeString ( string $value ) Diese Routine gibt eine Zeichenkette zurück, die aus Sicherheitsgründen ordnungsgemäß für die Verwendung in einer SQL-Anweisung escaped wurde. |
Verbindung zur Datenbank herstellen
Der folgende PHP-Code zeigt, wie man eine Verbindung zu einer vorhandenen Datenbank herstellt. Wenn die Datenbank nicht existiert, wird sie erstellt, und schließlich wird ein Datenbankobjekt zurückgegeben.
<?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";
}
?>
Nun lassen Sie uns das obige Programm ausführen, um unsere Datenbank im aktuellen Verzeichnistest.dbzu erstellen. Sie können den Pfad nach Bedarf ändern. Wenn die Datenbank erfolgreich erstellt wurde, wird die unten gezeigte Meldung angezeigt:
Open database successfully
Tabelle erstellen
Das folgende PHP-Code-Snippet wird verwendet, um eine Tabelle in der zuvor erstellten Datenbank zu erstellen:
<?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();
?>
Wenn das obige Programm ausgeführt wird, wird es intest.dbdie Tabelle COMPANY erstellen und die folgende Meldung anzeigen:
Opened database successfully Table created successfully
INSERT-Operation
Das folgende PHP-Programm zeigt, wie man Datensätze in der oben erstellten Tabelle COMPANY erstellt:
<?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();
?>
Wenn das obige Programm ausgeführt wird, werden die angegebenen Datensätze in der Tabelle COMPANY erstellt und die folgenden zwei Zeilen angezeigt:
Opened database successfully Records created successfully
SELECT-Operation
Das folgende PHP-Programm zeigt, wie man Datensätze aus der zuvor erstellten Tabelle COMPANY abruft und anzeigt:
<?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();
?>
Wenn das obige Programm ausgeführt wird, liefert es das folgende Ergebnis:
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
UPDATE-Operation
Der folgende PHP-Code zeigt, wie man die UPDATE-Anweisung verwendet, um einen beliebigen Datensatz zu aktualisieren, und dann die aktualisierten Datensätze aus der Tabelle COMPANY abruft und anzeigt:
<?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();
?>
Wenn das obige Programm ausgeführt wird, liefert es das folgende Ergebnis:
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
DELETE-Operation
Der folgende PHP-Code zeigt, wie man die DELETE-Anweisung verwendet, um einen beliebigen Datensatz zu löschen, und dann die verbleibenden Datensätze aus der Tabelle COMPANY abruft und anzeigt:
<?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();
?>
Wenn das obige Programm ausgeführt wird, liefert es das folgende Ergebnis:
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 successfullyAndere Erweiterungen