Latest web development tutorials

SQLite - PHP

memasang

Sejak PHP 5.3.0 dan seterusnya ekstensi SQLite3 diaktifkan secara default. Anda dapat menonaktifkan SQLite3 diperpanjang penggunaan--without-sqlite3 pada waktu kompilasi.

Pengguna Windows harus mengaktifkan php_sqlite3.dll menggunakan ekstensi ini. Sejak PHP 5.3.0 dan seterusnya, DLL ini termasuk dalam Windows distribusi PHP.

Untuk petunjuk instalasi rinci, lihat rekomendasi PHP tutorial dan situs resminya.

PHP Antarmuka API

Berikut ini adalah program PHP penting untuk memenuhi kebutuhan Anda menggunakan basis data SQLite dalam program PHP. Jika Anda memerlukan informasi lebih lanjut, silakan lihat dokumentasi PHP resmi.

序号API & 描述
1public void SQLite3::open ( filename, flags, encryption_key )

打开一个 SQLite 3 数据库。如果构建包括加密,那么它将尝试使用的密钥。

如果文件名filename赋值为':memory:',那么 SQLite3::open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。

如果文件名 filename 为实际的设备文件名称,那么 SQLite3::open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,那么将创建一个新的命名为该名称的数据库文件。

可选的 flags 用于判断是否打开 SQLite 数据库。默认情况下,当使用 SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE 时打开。

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

该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。该程序用于对给定的数据库执行一个无结果的查询。

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

该例程执行一个 SQL 查询,如果查询到返回结果则返回一个SQLite3Result对象。

4public int SQLite3::lastErrorCode ( void )

该例程返回最近一次失败的 SQLite 请求的数值结果代码。

5public string SQLite3::lastErrorMsg ( void )

该例程返回最近一次失败的 SQLite 请求的英语文本描述。

6public int SQLite3::changes ( void )

该例程返回最近一次的 SQL 语句更新或插入或删除的数据库行数。

7public bool SQLite3::close ( void )

该例程关闭之前调用 SQLite3::open() 打开的数据库连接。

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

该例程返回一个字符串,在 SQL 语句中,出于安全考虑,该字符串已被正确地转义。

Terhubung ke database

Berikut kode PHP menunjukkan bagaimana menghubungkan ke database yang sudah ada. Jika database tidak ada, itu dibuat, dan akhirnya mengembalikan objek database.

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }
?>

Sekarang, mari kita jalankan program di atas, membuattest.db database kami di direktori saat ini.Anda dapat mengubah jalur yang diperlukan. Jika database berhasil dibuat, maka akan muncul pesan di bawah ini:

Terbuka basis data berhasil

Buat tabel

Berikut potongan kode PHP akan digunakan untuk membuat tabel dalam database yang dibuat sebelumnya:

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }

   $ Sql ​​= <<< EOF
      CREATE TABLE PERUSAHAAN
      (ID INT PRIMARY KEY NOT NULL,
      NAMA TEXT NOT NULL,
      AGE INT NOT NULL,
      ALAMAT CHAR (50),
      GAJI NYATA);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Tabel berhasil dibuat \ n";
   }
   $ Db-> close ();
?>

Ketika prosedur di atas, itu menciptakan meja PERUSAHAAN ditest.db dan menampilkan pesan di bawah ini:

database yang dibuka berhasil
Tabel berhasil dibuat

operasi INSERT

mengikuti program PHP menunjukkan cara membuat catatan dalam tabel COMPANY dibuat di atas:

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }

   $ Sql ​​= <<< EOF
      INSERT INTO PERUSAHAAN (ID, NAMA, UMUR, ALAMAT, GAJI)
      NILAI (1, 'Paul', 32, 'California', 20.000,00);

      INSERT INTO PERUSAHAAN (ID, NAMA, UMUR, ALAMAT, GAJI)
      NILAI (2, 'Allen', 25, 'Texas', 15.000,00);

      INSERT INTO PERUSAHAAN (ID, NAMA, UMUR, ALAMAT, GAJI)
      NILAI (3, 'Teddy', 23, 'Norwegia, 20.000,00);

      INSERT INTO PERUSAHAAN (ID, NAMA, UMUR, ALAMAT, GAJI)
      NILAI (4, 'Mark', 25, 'Rich-Mond', 65.000,00);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Rekaman berhasil dibuat \ n";
   }
   $ Db-> close ();
?>

Program di atas dijalankan, maka akan dibuat dalam tabel COMPANY untuk catatan yang diberikan, dan menampilkan dua baris berikut:

database yang dibuka berhasil
Catatan berhasil dibuat

operasi SELECT

mengikuti program PHP menunjukkan bagaimana untuk mendapatkan dari meja PERUSAHAAN buat sebelumnya dan menampilkan catatan:

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }

   $ Sql ​​= <<< EOF
      SELECT * dari PERUSAHAAN;
EOF;

   $ Ret = $ db-> query ($ sql);
   sementara ($ row = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . Echo "ID =" $ row [ 'ID'] "\ n" .;
      . Echo "NAME =" $ row [ 'NAMA'] "\ n" .;
      . Echo "ALAMAT =" $ row [ 'ALAMAT'] "\ n" .;
      . Echo "GAJI =" $ row [ 'GAJI'] "\ n \ n" .;
   }
   echo "Operasi berhasil dilakukan \ n";
   $ Db-> close ();
?>

Ketika program di atas dijalankan, maka akan menghasilkan hasil sebagai berikut:

database yang dibuka berhasil
ID = 1
NAME = Paul
ALAMAT = California
GAJI = 20000

ID = 2
NAME = Allen
ALAMAT = Texas
GAJI = 15000

ID = 3
NAME = Teddy
ALAMAT = Norwegia
GAJI = 20000

ID = 4
NAME = Mark
ALAMAT = Rich-Mond
GAJI = 65000

Operasi berhasil dilakukan

operasi UPDATE

Berikut kode PHP menunjukkan bagaimana menggunakan pernyataan UPDATE untuk memperbarui catatan apapun, kemudian mendapatkan dari meja PERUSAHAAN dan menampilkan catatan diperbarui:

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }
   $ Sql ​​= <<< EOF
      UPDATE PERUSAHAAN mengatur GAJI = 25.000,00 mana ID = 1;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo $ db-> perubahan (), "Rekam berhasil diperbarui \ n";
   }

   $ Sql ​​= <<< EOF
      SELECT * dari PERUSAHAAN;
EOF;
   $ Ret = $ db-> query ($ sql);
   sementara ($ row = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . Echo "ID =" $ row [ 'ID'] "\ n" .;
      . Echo "NAME =" $ row [ 'NAMA'] "\ n" .;
      . Echo "ALAMAT =" $ row [ 'ALAMAT'] "\ n" .;
      . Echo "GAJI =" $ row [ 'GAJI'] "\ n \ n" .;
   }
   echo "Operasi berhasil dilakukan \ n";
   $ Db-> close ();
?>

Ketika program di atas dijalankan, maka akan menghasilkan hasil sebagai berikut:

database yang dibuka berhasil
1 Rekaman diperbarui berhasil
ID = 1
NAME = Paul
ALAMAT = California
GAJI = 25000

ID = 2
NAME = Allen
ALAMAT = Texas
GAJI = 15000

ID = 3
NAME = Teddy
ALAMAT = Norwegia
GAJI = 20000

ID = 4
NAME = Mark
ALAMAT = Rich-Mond
GAJI = 65000

Operasi berhasil dilakukan

operasi DELETE

Berikut kode PHP menunjukkan bagaimana menggunakan pernyataan DELETE menghapus catatan apapun, dan kemudian diambil dari tabel PERUSAHAAN dan menampilkan rekaman yang tersisa:

<? Php
   kelas MyDB meluas SQLite3
   {
      fungsi __construct ()
      {
         $ Ini-> terbuka ( 'test.db');
      }
   }
   $ Db = baru MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Lain {
      echo "Database Dibuka berhasil \ n";
   }
   $ Sql ​​= <<< EOF
      DELETE dari PERUSAHAAN mana ID = 2;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
     echo $ db-> lastErrorMsg ();
   } Lain {
      echo $ db-> perubahan (), "Rekam berhasil dihapus \ n";
   }

   $ Sql ​​= <<< EOF
      SELECT * dari PERUSAHAAN;
EOF;
   $ Ret = $ db-> query ($ sql);
   sementara ($ row = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . Echo "ID =" $ row [ 'ID'] "\ n" .;
      . Echo "NAME =" $ row [ 'NAMA'] "\ n" .;
      . Echo "ALAMAT =" $ row [ 'ALAMAT'] "\ n" .;
      . Echo "GAJI =" $ row [ 'GAJI'] "\ n \ n" .;
   }
   echo "Operasi berhasil dilakukan \ n";
   $ Db-> close ();
?>

Ketika program di atas dijalankan, maka akan menghasilkan hasil sebagai berikut:

database yang dibuka berhasil
1 Rekaman berhasil dihapus
ID = 1
NAME = Paul
ALAMAT = California
GAJI = 25000

ID = 3
NAME = Teddy
ALAMAT = Norwegia
GAJI = 20000

ID = 4
NAME = Mark
ALAMAT = Rich-Mond
GAJI = 65000

Operasi berhasil dilakukan