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

PHP SQLite

Installazione

A partire da PHP 5.3.0, l'estensione SQLite3 è abilitata per default. Puoi usarla durante la compilazione. --without-sqlite3 Disabilitare l'estensione SQLite3.

Gli utenti Windows devono abilitare php_sqlite3.dll per utilizzare questa estensione. A partire da PHP 5.3.0, questo DLL è incluso nella distribuzione Windows di PHP.

Per ottenere istruzioni dettagliate di installazione, si consiglia di consultare le nostre guide PHP e il suo sito ufficiale.

Interfaccia API PHP

Di seguito è riportato un importante programma PHP, che può soddisfare le tue esigenze di utilizzo del database SQLite nel programma PHP. Se hai bisogno di ulteriori dettagli, consulta la documentazione ufficiale PHP.

NumeroAPI & Descrizione
1public void SQLite3::open (filename, flags, encryption_key )

apre un database SQLite 3. Se la costruzione include la crittografia, allora cercherà di utilizzare la chiave di crittografia.

Se il nome del file filename assegnato a ':memory:'Se questo valore è impostato su

Se il nome del file filename è il nome effettivo del dispositivo file, SQLite3::open() utilizzerà questo valore di parametro per tentare di aprire il file del database. Se il file con questo nome non esiste, verrà creato un nuovo file di database con questo nome.

flags opzionali per determinare se aprire il database SQLite. Di default, viene aperto quando si utilizza SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

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

Questa routine fornisce un modo rapido per eseguire un comando SQL, il comando SQL è fornito dal parametro sql, può essere composto da più comandi SQL. Questo programma viene utilizzato per eseguire una query senza risultati su un database dato.

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

Questa routine esegue una query SQL, se la query restituisce risultati, restituisce un SQLite3Result Oggetto.

4public int SQLite3::lastErrorCode ( void )

Questa routine restituisce il codice di risultato numerico dell'ultima richiesta SQLite fallita.

5public string SQLite3::lastErrorMsg ( void )

Questa routine restituisce la descrizione testuale in inglese dell'ultima richiesta SQLite fallita.

6public int SQLite3::changes ( void )

Questa routine restituisce il numero di righe del database aggiornate, inserite o eliminate nell'ultima query SQL.

7public bool SQLite3::close ( void )

Questa routine chiude la connessione al database aperta precedentemente con SQLite3::open().

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

Questa routine restituisce una stringa, in SQL, per motivi di sicurezza, la stringa è stata correttamente escapata.

Connessione al database

Il seguente codice PHP mostra come connettersi a un database esistente. Se il database non esiste, verrà creato e infine restituito un oggetto database.

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

Ora, eseguiamo il programma sopra menzionato per creare il nostro database nella directory corrente. test.db。Puoi modificare il percorso secondo necessità. Se il database viene creato con successo, verrà visualizzato il messaggio seguente:

Database aperto con successo

Creazione della tabella

Il seguente segmento di codice PHP verrà utilizzato per creare una tabella nel database precedentemente creato:

<?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();
?>

Quando viene eseguito il programma sopra menzionato, creerà la tabella nella seguente posizione: test.db Crea la tabella COMPANY e visualizza il messaggio seguente:

Opened database successfully
Tabella creata con successo

Operazione INSERT

Il seguente programma PHP mostra come creare record nella tabella COMPANY creata in precedenza:

<?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();
?>

Quando viene eseguito il programma sopra menzionato, creerà il record specificato nella tabella COMPANY e visualizzerà le seguenti due righe:

Opened database successfully
Records creati con successo

Operazione SELECT

Il seguente programma PHP mostra come ottenere e visualizzare i record dalla tabella COMPANY creata in precedenza:

<?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();
?>

When the above program is executed, it will produce the following results:

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
操作完成成功

Operazione UPDATE

Il seguente codice PHP mostra come utilizzare l'istruzione UPDATE per aggiornare qualsiasi record e quindi ottenere e visualizzare il record aggiornato dalla tabella 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();
?>

When the above program is executed, it will produce the following results:

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
操作完成成功

DELETE operation

The following PHP code demonstrates how to use the DELETE statement to delete any record and then retrieve and display the remaining records from the COMPANY table:

<?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();
?>

When the above program is executed, it will produce the following results:

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
操作完成成功