Sử dụng SQLite với PHP
Cài đặt
PHP 5.3.0 kích hoạt SQLite3 Extension theo mặc định. Để vô hiệu hóa nó, bạn sử dụng --without-sqlite3 tại compile time.
Người dùng Windows phải kích hoạt php_sqlite3.dll để sử dụng Extension này. DLL này được bao trong các bản phân phối Windows của PHP, như của PHP 5.3.0.
Để biết chi tiết cài đặt, bạn có thể vào Bài hướng dẫn PHP và Offical Website của nó.
PHP Interface APIs
Dưới đây là một số chương trình con quan trọng đủ để đáp ứng yêu cầu của bạn khi làm việc với SQLite Database từ chương trình PHP của bạn. Nếu bạn muốn tìm một ứng dụng tinh vi hơn, bạn có thể tìm nó trong PHP Documentation.
STT | API & Miêu tả |
---|---|
1 | public void SQLite3::open ( filename, flags, encryption_key )
Mở một SQLite3 database. Nếu có mật mã hóa, thì nó sẽ sử dụng key để mở. Nếu tham số filename là ':memory:', SQlite3_open() sẽ tạo một in-memory database trong RAM mà chỉ tồn tại trong suốt phiên đó. Nếu filename không là tên file thiết bị thực sự, SQLite3_open() cố gắng mở một database file bởi sử dụng giá trị của nó. Nếu không có file nào tồn tại với tên đó, hàm SQLite3_open() sẽ tạo một database file mới bởi tên đó. Các flags tùy ý được sử dụng để xác định cách để mở SQLite Database. Theo mặc định, hoạt động mở sử dụng SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE. |
2 | public bool SQLite3::exec ( string $query )
Chương trình con này cung cấp một cách thức nhanh và dễ dàng để thực thi các lệnh SQL được cung cấp bởi tham số sql mà có thể bao gồm nhiều hơn một lệnh SQL. Chương trình con này được sử dụng để thực thi một truy vấn không có kết quả với một Database đã cho |
3 | public SQLite3Result SQLite3::query ( string $query )
Chương trình con này thực thi một truy vấn SQL, trả về một đối tượng SQLite3Result nếu query trả về kết quả |
4 | public int SQLite3::lastErrorCode ( void )
Chương trình con này trả về kết quả dạng số là mã hóa của yêu cầu SQLite bị thất bại gần nhất |
5 | public string SQLite3::lastErrorMsg ( void )
Chương trình con này trả về phần miêu tả tiếng Anh của yêu cầu SQLite bị thất bại gần nhất |
6 | public int SQLite3::changes ( void )
Chương trình con này trả về số hàng trong Database mà đã được cập nhật hoặc được chèn hoặc bị xóa bởi lệnh SQL gần nhất |
7 | public bool SQLite3::close ( void )
Chương trình con này đóng một kết nối Database đã được mở trước đó bởi một lời gọi tới SQLite3::open() |
8 | public string SQLite3::escapeString ( string $value )
Chương trình con này trả về một chuỗi mà đã bị thoát một cách hợp lý để bảo đảm an toàn trong một lệnh SQL |
Kết nối tới Database
Chương trình PHP sau minh họa cách kết nối tới Database đang tồn tại. Nếu Database đó không tồn tại, thì nó sẽ được tạo, và cuối cùng một đối tượng Database sẽ được trả về.
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } ?>
Bây giờ, biên dịch và chạy chương trình trên để tạo cơ sở dữ liệu test.db trong thư mục hiện tại. Bạn có thể thay đổi Path tùy theo yêu cầu của mình. Nếu cơ sở dữ liệu được tạo thành cong, nó sẽ thông báo như sau:
Open database successfully
Tạo một bảng
Chương trình PHP sau sẽ được sử dụng để tạo một bảng trong Database đã được tạo trước đó.
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo "Table created successfully\n"; } $db->close(); ?>
Khi chương trình trên được biên dịch và thực thi, nó sẽ tạo bảng COMPANY trong test.db và nó sẽ thông báo:
Opened database successfully Table created successfully
Hoạt động INSERT
Chương trình PHP sau minh họa cách chúng ta tạo các bản ghi trong bảng COMPANY đã tạo ở ví dụ trên:
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo "Records created successfully\n"; } $db->close(); ?>
Chương trình PHP sau minh họa cách chúng ta tạo các bản ghi trong bảng COMPANY đã tạo ở ví dụ trên:
Opened database successfully Records created successfully
Hoạt động SELECT
Chương trình PHP sau minh họa cách chúng ta lấy và hiển thị các bản ghi từ bảng COMPANY được tạo trong ví dụ trên:
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<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(); ?>
Khi chương trình trên được biên dịch và thực thi, nó sẽ cho kết quả:
Opened database successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 20000ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000Operation done successfully
Hoạt động UPDATE
Chương trình PHP sau minh họa cách chúng ta sử dụng các lệnh UPDATE để cập nhật bất kỳ bản ghi nào và sau đó lấy và hiển thị các bản ghi đã được cập nhật từ bảng COMPANY:
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo $db->changes(), " Record updated successfully\n"; } $sql =<< 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(); ?>
Khi chương trình trên được biên dịch và thực thi, nó sẽ cho kết quả:
Opened database successfully 1 Record updated successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 25000ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000Operation done successfully
Hoạt động DELETE
Chương trình PHP sau minh họa cách chúng ta sử dụng các lệnh DELETE để xóa bất kỳ bản ghi nào và sau đó lấy và hiển thị các bản ghi còn lại từ bảng COMPANY:
open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo $db->changes(), " Record deleted successfully\n"; } $sql =<< 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(); ?>
Khi chương trình trên được biên dịch và thực thi, nó sẽ cho kết quả:
Opened database successfully 1 Record deleted successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 25000ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000Operation done successfully
Các bài học SQLite phổ biến khác tại VietJack:
- SQLite - Xóa bảng
- SQLite - Truy vấn Insert
- SQLite - Truy vấn Select
- SQLite - Toán tử
- SQLite - Biểu thức
- SQLite - Mệnh đề Where