Latest web development tutorials

SQLite - PHP

ติดตั้ง

ตั้งแต่ PHP 5.3.0 เป็นต้นไปขยาย SQLite3 ถูกเปิดใช้งานโดยค่าเริ่มต้น คุณสามารถปิดการใช้งานได้ยาวนาน SQLite3--without-sqlite3 ที่รวบรวมเวลา

ผู้ใช้ Windows ต้องเปิดใช้งาน php_sqlite3.dll ใช้นามสกุลนี้ ตั้งแต่ PHP 5.3.0 เป็นต้นไป DLL นี้จะรวมอยู่ในการจัดจำหน่ายของ Windows PHP

สำหรับคำแนะนำการติดตั้งโดยละเอียดโปรดดูคำแนะนำ PHP กวดวิชาของเราและเว็บไซต์อย่างเป็นทางการ

PHP อินเตอร์เฟซ API

ต่อไปนี้เป็นโปรแกรม PHP สิ่งสำคัญที่จะตอบสนองความต้องการของคุณโดยใช้ฐานข้อมูล SQLite ในโปรแกรม PHP หากคุณต้องการรายละเอียดเพิ่มเติมโปรดดูที่เอกสาร PHP อย่างเป็นทางการ

序号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 语句中,出于安全考虑,该字符串已被正确地转义。

เชื่อมต่อกับฐานข้อมูล

รหัส PHP ต่อไปนี้แสดงวิธีการเชื่อมต่อกับฐานข้อมูลที่มีอยู่ ถ้าฐานข้อมูลไม่ได้อยู่ก็จะถูกสร้างขึ้นและในที่สุดก็จะส่งกลับวัตถุฐานข้อมูล

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }
?>

ตอนนี้ขอเรียกใช้โปรแกรมดังกล่าวข้างต้นในการสร้างฐานข้อมูลของเราtest.db ในไดเรกทอรีปัจจุบันคุณสามารถเปลี่ยนเส้นทางตามความจำเป็น ถ้าฐานข้อมูลถูกสร้างเสร็จเรียบร้อยก็จะแสดงข้อความที่แสดงด้านล่าง:

เปิดฐานข้อมูลเรียบร้อยแล้ว

สร้างตาราง

ข้อมูลโค้ด PHP ต่อไปนี้จะถูกนำมาใช้เพื่อสร้างตารางในฐานข้อมูลที่สร้างขึ้นก่อนหน้านี้:

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }

   $ Sql ​​= <<< EOF
      CREATE TABLE บริษัท
      (ID INT คีย์หลักไม่เป็นโมฆะ,
      ชื่อ: ข้อความไม่เป็นโมฆะ,
      อายุ INT NOT NULL,
      ที่อยู่ CHAR (50),
      เงินเดือนจริง);
EOF;

   $ เกษียณ = $ db-> exec ($ SQL);
   ถ้า (! $ เกษียณ) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ตารางที่สร้างเสร็จเรียบร้อยแล้ว \ n";
   }
   $ db-> close ();
?>

เมื่อขั้นตอนข้างต้นจะสร้างตาราง บริษัท ในtest.db และแสดงข้อความที่แสดงด้านล่าง:

ฐานข้อมูลเปิดประสบความสำเร็จ
ตารางที่สร้างเสร็จเรียบร้อยแล้ว

ดำเนินการแทรก

โปรแกรม PHP ต่อไปนี้แสดงให้เห็นถึงวิธีการสร้างบันทึกในตาราง บริษัท ที่สร้างขึ้นดังกล่าวข้างต้น:

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }

   $ Sql ​​= <<< EOF
      แทรกใน บริษัท (ID ชื่ออายุที่อยู่ Salary)
      VALUES (1, 'พอล', 32, 'แคลิฟอร์เนีย' 20,000.00);

      แทรกใน บริษัท (ID ชื่ออายุที่อยู่ Salary)
      VALUES (2, 'อัลเลน', 25, เท็กซัส '15,000.00);

      แทรกใน บริษัท (ID ชื่ออายุที่อยู่ Salary)
      VALUES (3, 'เท็ดดี้', 23, 'นอร์เวย์' 20,000.00);

      แทรกใน บริษัท (ID ชื่ออายุที่อยู่ Salary)
      VALUES (4, 'มาร์ค', 25, 'รวย-Mond' 65,000.00);
EOF;

   $ เกษียณ = $ db-> exec ($ SQL);
   ถ้า (! $ เกษียณ) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ประวัติสร้างเสร็จเรียบร้อยแล้ว \ n";
   }
   $ db-> close ();
?>

โปรแกรมดังกล่าวข้างต้นจะถูกดำเนินการก็จะถูกสร้างขึ้นในตารางของ บริษัท สำหรับการบันทึกรับและแสดงสองบรรทัดต่อไป:

ฐานข้อมูลเปิดประสบความสำเร็จ
ประวัติสร้างเสร็จเรียบร้อยแล้ว

การดำเนินการเลือก

โปรแกรม PHP ต่อไปนี้แสดงให้เห็นว่าจะได้รับจากตาราง บริษัท ที่สร้างขึ้นก่อนหน้านี้และแสดงบันทึก:

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }

   $ Sql ​​= <<< EOF
      * เลือกจาก บริษัท ;
EOF;

   $ เกษียณ = $ db-> แบบสอบถาม ($ SQL);
   ในขณะที่ ($ แถว = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . ก้อง "id =" $ แถว [ 'ID'] "\ n" .;
      . ก้อง "NAME =" $ แถว [ 'NAME'] "\ n" .;
      . ก้อง "ที่อยู่ =" $ แถว [ 'ที่อยู่'] "\ n" .;
      . ก้อง "เงินเดือน =" $ แถว [เงินเดือน '] "\ n \ n" .;
   }
   echo "การดำเนินงานทำสำเร็จ \ n";
   $ db-> close ();
?>

เมื่อโปรแกรมดังกล่าวข้างต้นจะถูกดำเนินการก็จะให้ผลลัพธ์ที่ต่อไปนี้:

ฐานข้อมูลเปิดประสบความสำเร็จ
ID = 1
NAME = พอล
ADDRESS = แคลิฟอร์เนีย
เงินเดือน = 20000

ID = 2
NAME = อัลเลน
ADDRESS = เท็กซัส
เงินเดือน = 15000

ID = 3
NAME = เท็ดดี้
ADDRESS = นอร์เวย์
เงินเดือน = 20000

ID = 4
NAME = มาร์ค
ADDRESS = รวย-Mond
เงินเดือน = 65000

การดำเนินงานที่ทำสำเร็จ

การดำเนินการปรับปรุง

รหัส PHP ต่อไปนี้แสดงให้เห็นถึงวิธีการใช้คำสั่ง UPDATE ปรับปรุงระเบียนใด ๆ แล้วจะได้รับจากตาราง บริษัท และแสดงบันทึกการปรับปรุง:

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }
   $ Sql ​​= <<< EOF
      UPDATE บริษัท ได้กำหนดเงินเดือน = 25,000.00 ที่ id = 1;
EOF;
   $ เกษียณ = $ db-> exec ($ SQL);
   ถ้า (! $ เกษียณ) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo $ db-> การเปลี่ยนแปลง (), "บันทึกการปรับปรุงเรียบร้อยแล้ว \ n";
   }

   $ Sql ​​= <<< EOF
      * เลือกจาก บริษัท ;
EOF;
   $ เกษียณ = $ db-> แบบสอบถาม ($ SQL);
   ในขณะที่ ($ แถว = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . ก้อง "id =" $ แถว [ 'ID'] "\ n" .;
      . ก้อง "NAME =" $ แถว [ 'NAME'] "\ n" .;
      . ก้อง "ที่อยู่ =" $ แถว [ 'ที่อยู่'] "\ n" .;
      . ก้อง "เงินเดือน =" $ แถว [เงินเดือน '] "\ n \ n" .;
   }
   echo "การดำเนินงานทำสำเร็จ \ n";
   $ db-> close ();
?>

เมื่อโปรแกรมดังกล่าวข้างต้นจะถูกดำเนินการก็จะให้ผลลัพธ์ที่ต่อไปนี้:

ฐานข้อมูลเปิดประสบความสำเร็จ
1 รายการปรับปรุงเรียบร้อยแล้ว
ID = 1
NAME = พอล
ADDRESS = แคลิฟอร์เนีย
เงินเดือน = 25000

ID = 2
NAME = อัลเลน
ADDRESS = เท็กซัส
เงินเดือน = 15000

ID = 3
NAME = เท็ดดี้
ADDRESS = นอร์เวย์
เงินเดือน = 20000

ID = 4
NAME = มาร์ค
ADDRESS = รวย-Mond
เงินเดือน = 65000

การดำเนินงานที่ทำสำเร็จ

ดำเนินการลบ

รหัส PHP ต่อไปนี้แสดงให้เห็นถึงวิธีการใช้คำสั่ง DELETE ลบระเบียนใด ๆ และจากนั้นนำมาจากตาราง บริษัท และแสดงการบันทึกที่เหลือ:

<php?
   ชั้น MyDB ขยาย SQLite3
   {
      ฟังก์ชั่น __construct ()
      {
         $ this-> เปิด ( 'test.db');
      }
   }
   $ Db = MyDB ใหม่ ();
   ถ้า (! $ dB) {
      echo $ db-> lastErrorMsg ();
   } else {
      echo "ฐานข้อมูลเปิดประสบความสำเร็จ \ n";
   }
   $ Sql ​​= <<< EOF
      ลบออกจาก บริษัท ที่ id = 2;
EOF;
   $ เกษียณ = $ db-> exec ($ SQL);
   ถ้า (! $ เกษียณ) {
     echo $ db-> lastErrorMsg ();
   } else {
      echo $ db-> การเปลี่ยนแปลง (), "บันทึกลบเรียบร้อยแล้ว \ n";
   }

   $ Sql ​​= <<< EOF
      * เลือกจาก บริษัท ;
EOF;
   $ เกษียณ = $ db-> แบบสอบถาม ($ SQL);
   ในขณะที่ ($ แถว = $ ret-> fetchArray (SQLITE3_ASSOC)) {
      . ก้อง "id =" $ แถว [ 'ID'] "\ n" .;
      . ก้อง "NAME =" $ แถว [ 'NAME'] "\ n" .;
      . ก้อง "ที่อยู่ =" $ แถว [ 'ที่อยู่'] "\ n" .;
      . ก้อง "เงินเดือน =" $ แถว [เงินเดือน '] "\ n \ n" .;
   }
   echo "การดำเนินงานทำสำเร็จ \ n";
   $ db-> close ();
?>

เมื่อโปรแกรมดังกล่าวข้างต้นจะถูกดำเนินการก็จะให้ผลลัพธ์ที่ต่อไปนี้:

ฐานข้อมูลเปิดประสบความสำเร็จ
1 รายการลบเรียบร้อยแล้ว
ID = 1
NAME = พอล
ADDRESS = แคลิฟอร์เนีย
เงินเดือน = 25000

ID = 3
NAME = เท็ดดี้
ADDRESS = นอร์เวย์
เงินเดือน = 20000

ID = 4
NAME = มาร์ค
ADDRESS = รวย-Mond
เงินเดือน = 65000

การดำเนินงานที่ทำสำเร็จ