SQLite - PHP

Di bab ini, Anda akan mempelajari cara menggunakan SQLite dalam program PHP.

Instalasi

Ekstensi SQLite3 diaktifkan secara default pada PHP 5.3.0. Dimungkinkan untuk menonaktifkannya dengan menggunakan--without-sqlite3 pada waktu kompilasi.

Pengguna Windows harus mengaktifkan php_sqlite3.dll untuk menggunakan ekstensi ini. DLL ini disertakan dengan distribusi PHP Windows pada PHP 5.3.0.

Untuk instruksi penginstalan terperinci, silakan periksa tutorial PHP kami dan situs resminya.

API Antarmuka PHP

Berikut ini adalah rutinitas PHP penting yang dapat memenuhi kebutuhan Anda untuk bekerja dengan database SQLite dari program PHP Anda. Jika Anda mencari aplikasi yang lebih canggih, Anda dapat melihat dokumentasi resmi PHP.

Sr.No. API & Deskripsi
1

public void SQLite3::open ( filename, flags, encryption_key )

Membuka Database SQLite 3. Jika build menyertakan enkripsi, maka build akan mencoba menggunakan kunci tersebut.

Jika nama file diberikan sebagai':memory:', SQLite3 :: open () akan membuat database dalam memori dalam RAM yang hanya bertahan selama sesi.

Jika nama file adalah nama file perangkat sebenarnya, SQLite3 :: open () mencoba untuk membuka file database dengan menggunakan nilainya. Jika tidak ada file dengan nama itu, maka file database baru dengan nama itu akan dibuat.

Bendera opsional yang digunakan untuk menentukan cara membuka database SQLite. Secara default, buka menggunakan SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

2

public bool SQLite3::exec ( string $query )

Rutinitas ini menyediakan cara cepat dan mudah untuk menjalankan perintah SQL yang disediakan oleh argumen sql, yang dapat terdiri dari lebih dari satu perintah SQL. Rutin ini digunakan untuk menjalankan kueri tanpa hasil terhadap database tertentu.

3

public SQLite3Result SQLite3::query ( string $query )

Rutinitas ini mengeksekusi kueri SQL, mengembalikan SQLite3Result objek jika kueri mengembalikan hasil.

4

public int SQLite3::lastErrorCode ( void )

Rutinitas ini mengembalikan kode hasil numerik dari permintaan SQLite terbaru yang gagal.

5

public string SQLite3::lastErrorMsg ( void )

Rutinitas ini mengembalikan teks bahasa Inggris yang menjelaskan permintaan SQLite terbaru yang gagal.

6

public int SQLite3::changes ( void )

Rutinitas ini mengembalikan jumlah baris database yang diperbarui, disisipkan, atau dihapus oleh pernyataan SQL terbaru.

7

public bool SQLite3::close ( void )

Rutin ini menutup koneksi database yang sebelumnya dibuka oleh panggilan ke SQLite3 :: open ().

8

public string SQLite3::escapeString ( string $value )

Rutinitas ini mengembalikan string yang telah lolos dengan benar untuk penyertaan yang aman dalam pernyataan SQL.

Hubungkan ke Database

Kode PHP berikut menunjukkan bagaimana menghubungkan ke database yang sudah ada. Jika database tidak ada, maka akan dibuat dan akhirnya objek database akan dikembalikan.

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

Sekarang, mari kita jalankan program di atas untuk membuat database kita test.dbdi direktori saat ini. Anda dapat mengubah jalur Anda sesuai kebutuhan Anda. Jika database berhasil dibuat, maka akan muncul pesan berikut -

Open database successfully

Buat Tabel

Program PHP berikut akan digunakan untuk membuat tabel pada database yang telah dibuat sebelumnya.

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

Ketika program di atas dijalankan, itu akan membuat tabel PERUSAHAAN di Anda test.db dan itu akan menampilkan pesan berikut -

Opened database successfully
Table created successfully

Operasi INSERT

Program PHP berikut menunjukkan cara membuat record di tabel COMPANY yang dibuat pada contoh di atas.

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

Ketika program di atas dijalankan, itu akan membuat catatan yang diberikan di tabel PERUSAHAAN dan akan menampilkan dua baris berikut.

Opened database successfully
Records created successfully

PILIH Operasi

Program PHP berikut menunjukkan cara mengambil dan menampilkan catatan dari tabel PERUSAHAAN yang dibuat pada contoh di atas -

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

Ketika program diatas dijalankan maka akan menghasilkan hasil sebagai berikut.

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 Operasi

Kode PHP berikut menunjukkan bagaimana menggunakan pernyataan UPDATE untuk memperbarui catatan apa pun dan kemudian mengambil dan menampilkan catatan yang diperbarui dari tabel PERUSAHAAN.

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

Ketika program diatas dijalankan maka akan menghasilkan hasil sebagai berikut.

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

HAPUS Operasi

Kode PHP berikut menunjukkan bagaimana menggunakan pernyataan DELETE untuk menghapus record apapun dan kemudian mengambil dan menampilkan record yang tersisa dari tabel 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();
?>

Ketika program diatas dijalankan maka akan menghasilkan hasil sebagai berikut.

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