intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phát triển ứng dụng web: Chương 7 - Lê Đình Thanh

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:41

10
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Phát triển ứng dụng web: Chương 7 Thao tác cơ sở dữ liệu, cung cấp cho người đọc những kiến thức như: Tổng quan; Mô hình ba tầng; PDO; Truy vấn theo dữ liệu người dùng; Truy cập đồng thời đến CSDL; ORM;...Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phát triển ứng dụng web: Chương 7 - Lê Đình Thanh

  1. Bài giảng PHÁT TRIỂN ỨNG DỤNG WEB Lê Đình Thanh Khoa Công nghệ Thông tin Trường Đại học Công nghệ, ĐHQGHN E-mail: thanhld@vnu.edu.vn Mobile: 0987.257.504 1
  2. Chương 7 Thao tác CSDL 2 Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  3. Nội dung • Tổng quan • Mô hình ba tầng • PDO • Truy vấn theo dữ liệu người dùng • Truy cập đồng thời đến CSDL • ORM Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  4. Tổng quan • Các bước chính 1. Kết nối đến máy chủ CSDL và lựa chọn CSDL để làm việc 2. Xây dựng các truy vấn, cập nhật và thực hiện truy vấn, cập nhật 3. Xử lý dữ liệu kết quả trả về khi thực hiện các truy vấn, cập nhật 4. Đóng kết nối đến máy chủ cơ sở dữ liệu • Hệ quản trị CSDL o MySQL, PostgreSQL, Oracle, MS SQL, MongoDB … • Thư viện thao tác CSDL o PDO o ORM Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  5. Mô hình ba tầng • Tầng khách: trình diễn và tương tác với người dùng • Tầng giữa: thực hiện các logic của ứng dụng • Tầng CSDL: bao gồm hệ quản trị CSDL, CSDL của ứng dụng Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  6. Tầng CSDL • CSDL cho ứng dụng • Hệ quản trị CSDL quản lý CSDL của ứng dụng  Nhận truy vấn từ các chương trình dịch tầng giữa, thao tác CSDL và trả kết quả cho chương trình yêu cầu Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  7. Sử dụng PDO - từ PHP 5 trở đi - hướng đối tượng - sử dụng với mọi hệ QTCSDL - nên dùng nếu viết mã mới (Quá khứ: mysql, mysqli) Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  8. PHP Data Objects • PDO cung cấp một giao diện chuẩn hóa, nhất quán để thao tác với CSDL sử dụng PHP  Dễ chuyển đổi CSDL  Viết mã hiệu quả và an toàn Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  9. Nguyên lý hoạt động PDO sql dbms Database sql PDO DBMS PDO result Driver dbms result database Cần cài driver cho hệ QTCSDL được sử dụng Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  10. Cài đặt và cấu hình • PDO • Cài đặt php5-mysql, • Cấu hình extension=pdo.so trong php.ini • Trình điều khiển cho MySQL • Cài đặt pdo-mysql • Cấu hình extension=pdo_mysql.so trong php.ini Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  11. Kết nối và đóng kết nối CSDL • $db = new PDO($dsn, $username, $password, [$options]); • Tên nguồn dữ liệu (dsn - database source name) khác nhau với các hệ QTCSDL  MySQL: “mysql:host=...; dbname=...;”  PostgressSQL: “pgsql:host=...; dbname=...;”  MS SQL: “sqlsrv:Server=...;Database=...”  … • Đóng kết nối  $db = null; Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  12. Xử lý ngoại lệ try { //Sử dụng PDO } catch(PDOException $ex) { echo "Error”.$ex->getMessage(); } Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  13. Kết nối và đóng kết nối CSDL try { //Mở kết nối cơ sở dữ liệu $dsn = “mysql:host=112.137.129.123; dbname=thuvien;”; $db = new PDO($dsn, ”canbo”,”canbo@123”); //Các thao tác cơ sở dữ liệu: truy vấn, cập nhật // //Đóng kết nối cơ sở dữ liệu $db = null; } catch (PDOException $e) { echo "Lỗi”.$e->getMessage(); } Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  14. Cập nhật CSDL • Thực thi insert, update, delete  $rows = $db->exec("UPDATE ..."); • Lấy id (tự tăng) của bản ghi vừa được thêm  $db->lastInsertId(); Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  15. Cập nhật CSDL try { //Cập nhật cơ sở dữ liệu $r = $db->exec(“update Sach set tieude=’Lập trình C++’ where id=’1’”); echo “$r bản ghi đã được cập nhật.”; } catch (PDOException $e) { echo "Lỗi”.$e->getMessage(); } Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  16. Cập nhật CSDL (tiếp) • Thực thi insert, update, delete với lệnh chuẩn bị trước  $stmt = $db->prepare("DELETE FROM User WHERE id=:id and name LIKE ?");  $stmt->bindValue(':id', 123);  $stmt->bindValue(2, "Johnny");  $stmt->execute();  $affected_rows = $stmt->rowCount(); Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  17. Cập nhật CSDL (tiếp) try { //Chuẩn bị câu lệnh cập nhật $stmt= $db->prepare(“update Sach set tieude = ? where id = :id”); //Buộc các tham số $stmt->bindValue(1, ’Lập trình C++’); $stmt->bindValue(“:id”, 1); //Thực thi $stmt->execute(); } catch (PDOException $e) { echo "Lỗi”.$e->getMessage(); } Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  18. Truy vấn CSDL • Thực hiện truy vấn  $stmt = $db->query('SELECT * FROM ...');  Duyệt các bản ghi  while ($row = $stmt- >fetch(PDO::FETCH_ASSOC)) {  echo $row['field1'].' '.$row['field2'];  }  Đếm số bản ghi  $row_count = $stmt->rowCount(); Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  19. Truy vấn CSDL try { //Truy vấn và xử lý kết quả $stmt = $db->query(“select * from Sach where nxb=’ĐHQGHN’”); while ($row = $stmt->fetch(PDO::FETCH_ASSOC))) { echo $row[‘tieude’].” “.$row[‘nxb’].”\n”; } } catch (PDOException $e) { echo "Lỗi”.$e->getMessage(); } Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
  20. Truy vấn CSDL (tiếp) • Thực hiện truy vấn với lệnh chuẩn bị trước  $stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?");  $stmt->bindValue(1, 123);  $stmt->bindValue(2, “Jonny”);  $stmt->execute();  Duyệt các bản ghi while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  echo $row['field1'].' '.$row['field2'];  }  Đếm số bản ghi  $row_count = $stmt->rowCount(); Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0