บทช่วยสอน SQLite - PHP ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ ติดตั้ง,PHP อินเตอร์เฟซ API,เชื่อมต่อกับฐานข้อมูล,สร้างตาราง,ดำเนินการแทรก,การดำเนินการเลือก,การดำเนินการปรับปรุง,ดำเนินการลบ,
ตั้งแต่ PHP 5.3.0 เป็นต้นไปขยาย SQLite3 ถูกเปิดใช้งานโดยค่าเริ่มต้น คุณสามารถปิดการใช้งานได้ยาวนาน SQLite3--without-sqlite3 ที่รวบรวมเวลา
ผู้ใช้ Windows ต้องเปิดใช้งาน php_sqlite3.dll ใช้นามสกุลนี้ ตั้งแต่ PHP 5.3.0 เป็นต้นไป DLL นี้จะรวมอยู่ในการจัดจำหน่ายของ Windows PHP
สำหรับคำแนะนำการติดตั้งโดยละเอียดโปรดดูคำแนะนำ PHP กวดวิชาของเราและเว็บไซต์อย่างเป็นทางการ
ต่อไปนี้เป็นโปรแกรม PHP สิ่งสำคัญที่จะตอบสนองความต้องการของคุณโดยใช้ฐานข้อมูล SQLite ในโปรแกรม PHP หากคุณต้องการรายละเอียดเพิ่มเติมโปรดดูที่เอกสาร PHP อย่างเป็นทางการ
序号 | API & 描述 |
---|---|
1 | public 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 时打开。 |
2 | public bool SQLite3::exec ( string $query ) 该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。该程序用于对给定的数据库执行一个无结果的查询。 |
3 | public SQLite3Result SQLite3::query ( string $query ) 该例程执行一个 SQL 查询,如果查询到返回结果则返回一个SQLite3Result对象。 |
4 | public int SQLite3::lastErrorCode ( void ) 该例程返回最近一次失败的 SQLite 请求的数值结果代码。 |
5 | public string SQLite3::lastErrorMsg ( void ) 该例程返回最近一次失败的 SQLite 请求的英语文本描述。 |
6 | public int SQLite3::changes ( void ) 该例程返回最近一次的 SQL 语句更新或插入或删除的数据库行数。 |
7 | public bool SQLite3::close ( void ) 该例程关闭之前调用 SQLite3::open() 打开的数据库连接。 |
8 | public 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 การดำเนินงานที่ทำสำเร็จ