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
1public 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.

2public 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.

3public SQLite3Result SQLite3::query ( string $query )

Diese Routine führt eine SQL-Abfrage aus und gibt einSQLite3Result-Objekt zurück.

4public int SQLite3::lastErrorCode ( void )

Diese Routine gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anfrage zurück.

5public string SQLite3::lastErrorMsg ( void )

Diese Routine gibt die englische Textbeschreibung der letzten fehlgeschlagenen SQLite-Anfrage zurück.

6public 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.

7public bool SQLite3::close ( void )

Diese Routine schließt die Datenbankverbindung, die zuvor durch Aufruf von SQLite3::open() geöffnet wurde.

8public 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 successfully
Andere Erweiterungen