English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite PHP

Installieren

Ab PHP 5.3.0 werden SQLite standardmäßig aktiviert3 Erweiterung. Sie können sie beim Kompilieren verwenden --ohne-sqlite3 Deaktivieren Sie SQLite3 Erweiterung.

Muss der Benutzer von Windows php_sqlite aktivieren3.dll können Sie diese Erweiterung verwenden. Ab PHP 5.3.0 ab, wird diese DLL in der Windows-Distribution von PHP enthalten sein.

Für detaillierte Installationsanweisungen empfehlen wir, unseren PHP-Tutorial und seine offizielle Website zu überprüfen.

PHP-Schnittstellen-API

Hier sind wichtige PHP-Programme, die Ihre Anforderungen an die Verwendung der SQLite-Datenbank in PHP-Programmen erfüllen können. Wenn Sie mehr Details benötigen, lesen Sie bitte die offizielle PHP-Dokumentation.

NummerAPI & Beschreibung
1public void SQLite3::open ( filename, flags, encryption_key )

Eine SQLite 3 Datenbank. Wenn der Aufbau Verschlüsselung einschließt, wird der verwendete Schlüssel versucht.

Wenn der Dateiname filename zuweisen ':memory:', dann SQLite3::open() wird eine in RAM angelegte Datenbank erstellen, die nur während der Gültigkeit der Sitzung anhält.

Wenn der Dateiname filename der tatsächliche Gerätedateiname ist, dann erstellt SQLite3::open() wird versucht, die Datenbankdatei zu öffnen. Wenn eine Datei mit diesem Namen nicht existiert, wird eine neue Datenbankdatei mit diesem Namen erstellt.

Optionale Flags zur Bestimmung, ob die SQLite-Datenbank geöffnet wird. Standardmäßig wird der Parameterwert verwendet, wenn SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE bei der Eröffnung.

2public bool SQLite3::exec ( string $query )

Diese Routine bietet eine Kurzwahlfunktion für die Ausführung von SQL-Befehlen, die durch den sql-Parameter bereitgestellt werden und aus mehreren SQL-Befehlen bestehen können. Dieses Programm wird verwendet, um eine resultlose Abfrage für die angegebene Datenbank auszuführen.

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

Diese Routine führt eine SQL-Abfrage aus und gibt zurück, wenn eine Abfrageergebnis zurückgegeben wird. SQLite3Ergebnis Objekt.

4public int SQLite3::lastErrorCode ( void )

Diese Routine gibt den numerischen Fehlercode der neuesten fehlgeschlagenen SQLite-Anfrage zurück.

5public string SQLite3::lastErrorMsg ( void )

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

6public int SQLite3::changes ( void )

Diese Routine gibt die Anzahl der Datenbankzeilen zurück, die durch das neueste SQL-Update, Insert oder Delete aktualisiert wurden.

7public bool SQLite3::close ( void )

Diese Routine schließt die SQLite3::open() geöffnete Datenbankverbindung.

8public string SQLite3::escapeString ( string $value )

Diese Routine gibt einen String zurück, der im SQL-Befehl aus Sicherheitsgründen korrekt escaped wurde.

Datenbankverbindung

Der folgende PHP-Code zeigt, wie man sich mit einer bestehenden Datenbank verbindet. 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";
   }
?>

Lassen Sie uns nun das obige Programm ausführen und unsere Datenbank im aktuellen Verzeichnis erstellen test.db。Sie können den Pfad nach Bedarf ändern. Wenn die Datenbank erfolgreich erstellt wurde, wird die folgende Meldung angezeigt:

Datenbank erfolgreich geöffnet

Tabelle erstellen

Der folgende PHP-Codeabschnitt 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 "Tabelle erfolgreich erstellt\n";
   }
   $db->close();
?>

Wenn das obige Programm ausgeführt wird, erstellt es test.db Ein TABLE COMPANY wird erstellt und die folgende Meldung wird angezeigt:

Datenbank erfolgreich geöffnet
Tabelle erfolgreich erstellt

INSERT-Operation

Das folgende PHP-Programm zeigt, wie man Einträge im oben erstellten TABLE 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 "Daten erfolgreich erstellt\n";
   }
   $db->close();
?>

Wenn das obige Programm ausgeführt wird, erstellt es die angegebenen Einträge im TABLE COMPANY und zeigt die folgenden zwei Zeilen an:

Datenbank erfolgreich geöffnet
Daten erfolgreich erstellt

SELECT 操作

下面的 PHP 程序显示了如何从前面创建的 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
      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();
?>

上述程序执行时,它会产生以下结果:

Datenbank erfolgreich geöffnet
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 erfolgreich abgeschlossen

UPDATE 操作

下面的 PHP 代码显示了如何使用 UPDATE 语句来更新任何记录,然后从 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();
?>

上述程序执行时,它会产生以下结果:

Datenbank erfolgreich geöffnet
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 erfolgreich abgeschlossen

DELETE 操作

下面的 PHP 代码显示了如何使用 DELETE 语句删除任何记录,然后从 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();
?>

上述程序执行时,它会产生以下结果:

Datenbank erfolgreich geöffnet
1 Datensatz erfolgreich gelöscht
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 erfolgreich abgeschlossen