Bài giảng Phát triển ứng dụng web: Chương 7 - Lê Đình Thanh
lượt xem 4
download
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!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phát triển ứng dụng web: Chương 7 - Lê Đình Thanh
- 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
- Chương 7 Thao tác CSDL 2 Lê Đình Thanh, Bài giảng Phát triển ứng dụng web.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phát triển ứng dụng Web – Web Programming: Chương 0 - ThS. Lương Trần Hy Hiến
20 p | 243 | 19
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 2(1) - Dương Khai Phong
45 p | 132 | 17
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 3 - Dương Khai Phong
60 p | 119 | 15
-
Bài giảng Phát triển ứng dụng Web – Web Programming: Chương 5 - ThS. Lương Trần Hy Hiến
0 p | 108 | 15
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 2(2) - Dương Khai Phong
49 p | 131 | 14
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 4 - Dương Khai Phong
50 p | 101 | 12
-
Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 2
76 p | 27 | 12
-
Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 1
123 p | 48 | 11
-
Bài giảng Phát triển ứng dụng web: Bài 3 - Lê Đình Thanh
42 p | 122 | 11
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 1 - Dương Khai Phong
28 p | 136 | 10
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 7: Nguyên lý phát triển ứng dụng với Flutter
88 p | 23 | 8
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 8: Đánh giá hiệu năng ứng dụng đa nền tảng
66 p | 24 | 8
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 0: Giới thiệu về môn học
27 p | 32 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 2: Tổng quan về kiến trúc của di động
53 p | 20 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 3.2: Cross-Platform
17 p | 21 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 1: Tổng quan về phát triển ứng dụng di động
46 p | 30 | 6
-
Bài giảng Phát triển ứng dụng Web: Bài 6 - Nguyễn Hữu Thể
24 p | 43 | 4
-
Bài giảng Phát triển ứng dụng web: Chương 0 - Lê Đình Thanh
10 p | 15 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn