Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

SQLite - PHP


Pemasangan

Pelanjutan SQLite3 didayakan secara lalai sejak PHP 5.3.0. Sambungan SQLite3 boleh dilumpuhkan pada masa penyusunan menggunakan --tanpa-sqlite3.

Pengguna Windows mesti mendayakan php_sqlite3.dll untuk menggunakan sambungan ini. Mulai PHP 5.3.0, DLL ini disertakan dalam pengedaran Windows PHP.

Untuk arahan pemasangan terperinci, adalah disyorkan untuk menyemak tutorial PHP kami dan tapak web rasminya.

API Antara Muka PHP

Berikut ialah program PHP penting yang boleh memenuhi keperluan anda untuk menggunakan pangkalan data SQLite dalam program PHP. Jika anda memerlukan butiran lanjut, lihat dokumentasi PHP rasmi.

Nombor SiriAPI & Perihalan
1kosong awam SQLite3 ::open ( nama fail, bendera, kunci_enkripsi )

Buka pangkalan data SQLite 3. Jika binaan termasuk penyulitan, maka kunci yang akan cuba digunakan.

Jika nama fail nama fail diberikan nilai ':memory:', maka SQLite3::open() akan mencipta pangkalan data dalam memori dalam RAM, yang hanya akan Bertahan untuk tempoh sesi.

Jika nama fail ialah nama fail peranti sebenar, maka SQLite3::open() akan menggunakan nilai parameter ini untuk cuba membuka fail pangkalan data. Jika fail dengan nama itu tidak wujud, fail pangkalan data baharu dengan nama itu akan dibuat.

Bendera pilihan digunakan untuk menentukan sama ada untuk membuka pangkalan data SQLite. Dihidupkan secara lalai apabila menggunakan SQLITE3_OPEN_READWRITE |.

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

Rutin ini menyediakan pintasan untuk melaksanakan perintah SQL Arahan SQL disediakan oleh parameter sql dan boleh terdiri daripada berbilang arahan SQL. Program ini digunakan untuk melaksanakan pertanyaan tanpa keputusan terhadap pangkalan data yang diberikan.

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

Rutin ini melaksanakan SQL pertanyaan, jika pertanyaan mengembalikan hasil, objek SQLite3Result akan dikembalikan.

4public int SQLite3::lastErrorCode ( void )

Rutin ini mengembalikan kegagalan terbaharu Kod hasil angka untuk permintaan SQLite.

5rentetan awam SQLite3::lastErrorMsg ( void )

Rutin ini mengembalikan kegagalan terbaharu Penerangan teks bahasa Inggeris tentang permintaan SQLite.

6public int SQLite3::changes (void)

Rutin ini mengembalikan yang terbaru bilangan baris pangkalan data yang dikemas kini atau disisipkan atau dipadamkan oleh pernyataan SQL.

7public bool SQLite3::close (void)

Rutin ini dipanggil sebelum menutup SQLite3 ::open() Buka sambungan pangkalan data.

8rentetan awam SQLite3::escapeString ( string $value )

Rutin ini mengembalikan rentetan, Dalam Penyataan SQL, rentetan dilepaskan dengan betul atas sebab keselamatan.

Menyambung ke pangkalan data

Kod PHP berikut menunjukkan cara menyambung ke pangkalan data sedia ada. Jika pangkalan data tidak wujud, ia akan dibuat dan objek pangkalan data 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 jalankan program di atas untuk mencipta pangkalan data kami test.db dalam direktori semasa. Anda boleh menukar laluan mengikut keperluan. Jika pangkalan data berjaya dibuat, maka mesej seperti yang ditunjukkan di bawah akan dipaparkan:

Open database successfully

Mencipta jadual

Coretan kod PHP berikut akan digunakan untuk mencipta jadual dalam pangkalan data yang dibuat sebelum ini:

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

Apabila program di atas dilaksanakan, ia mencipta jadual SYARIKAT dalam test.db dan memaparkan mesej yang ditunjukkan di bawah:

Opened database successfully
Table created successfully

operasi INSERT

di bawah Program PHP menunjukkan cara untuk mencipta rekod dalam jadual SYARIKAT yang dibuat 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();
?>

Apabila program di atas dilaksanakan, ia mencipta rekod yang diberikan dalam jadual SYARIKAT dan memaparkan dua baris berikut:

Opened database successfully
Records created successfully

PILIH Operasi

Atur cara PHP berikut menunjukkan cara untuk mendapatkan dan memaparkan rekod daripada jadual SYARIKAT yang dibuat sebelum ini:

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

Apabila program di atas dilaksanakan, ia menghasilkan keputusan 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

Kemas kini Operasi

Kod PHP berikut menunjukkan cara untuk mengemas kini sebarang rekod menggunakan kenyataan KEMASKINI dan kemudian mendapatkan dan memaparkan rekod yang dikemas kini daripada jadual SYARIKAT:

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

Pelaksanaan program di atas, ia menghasilkan keputusan 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

Operasi PADAM

Kod PHP berikut menunjukkan cara untuk memadam sebarang rekod menggunakan kenyataan DELETE dan kemudian dapatkan dan paparkan rekod yang tinggal daripada Jadual SYARIKAT:

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

Apabila program di atas dilaksanakan, ia akan menghasilkan keputusan 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

Laman web PHP Cina