Bài giảng Lập trình trang web động - Chương 6: Xây dựng và kết nối database MySQL trong PHP - Nguyễn Thị Quỳnh Hoa

pdf 46 trang Gia Huy 17/05/2022 2810
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình trang web động - Chương 6: Xây dựng và kết nối database MySQL trong PHP - Nguyễn Thị Quỳnh Hoa", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_lap_trinh_trang_web_dong_chuong_6_xay_dung_va_ket.pdf

Nội dung text: Bài giảng Lập trình trang web động - Chương 6: Xây dựng và kết nối database MySQL trong PHP - Nguyễn Thị Quỳnh Hoa

  1. TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI Chương 6 Xây dựng và kết nối database MySql trong PHP Nguyễn thị Quỳnh Hoa - Khoa CNTT- ĐH Sư phạm Hà Nội 1
  2. NỘI DUNG 2
  3. Cơ sở dữ liệu Khái MySQL niệm Hệ Chức quản trị năng Quan hệ 3
  4. MySQL Đặc điểm Cài đặt Tập tin lưu trữ 4
  5. Đặc điểm của MySQL • Là một hệ quản trị CSDL quan hệ • Sử dụng cho các ứng dụng Web • Thực hiện các thao tác trên CSDL qua giao diện đồ họa hay dùng dòng lệnh 5
  6. Cài đặt • Là phần mềm mã nguồn mở do đó có thể tải miễn phí từ trang chủ • Nó có nhiều phiên bản cho các hệ điều hành khác nhau 6
  7. Tập tin lưu trữ • Mỗi bảng sẽ lưu trữ dưới dạng ba tập tin vật lý : o.frm:lưu định dạng (cấu trúc) của bảng o.MYD: lưu nội dung của bảng o.MYI : lưu chỉ mục của bảng • Các tập tin này sẽ được tự động lưu trữ trong thư mục : xampp\mysql\data\tên_CSDL 7
  8. THỰC THI CÁC TRUY VẤN SQL 8
  9. TRUY VẤN QUA MySQL Consle Mở cửa sổ CMD (Start->Run->cmd[Enter]) Chuyển tới thư mục chứa file mysql.exe (Cd c:\xampp\mysql\bin) Gọi file mysql với 2 tham số username và password (Mysql – u root – p[Enter]) Nhập mật khẩu tương ứng với user Nhập các truy vấn SQL và bấm Enter để thực thi 9
  10. TRUY VẤN SQL QUA PHPMyAdmin Mở cửa sổ phpmyadmin Bật cửa sổ SQL Nhập câu lệnh SQL Kết thúc bằng phím Enter 10
  11. CÁC TRUY VẤN LÀM VIỆC VỚI CSDL XEM DANH Show database; SÁCH CSDL Thêm một Creat database tên_CSDL; CSDL Xóa một CSDL Drop database tên_CSDL; Sửa default ALTER DATABASE Tên_CSDL charset của DEFAULT CHATTACTER SET CSDL utf8 COLLATE tên_charset 11
  12. CÁC TRUY VẤN XỬ LÝ BẢNG Xem danh sách Show tables [in database] [like bảng ‘%tukhoa%’] Tạo bảng Create table tên_bảng ( ,Tên_trường kiểu_dữ_liệu [(độ dài)] [Tham số], ) Xem danh sách các SHOW COLUMNS FROM tên_bảng; trường Sửa cấu trúc bảng ALTER TABLE Tên_bảng . Đổi tên bảng ALTER TABLE Tên_cũ RENAME TO Tên_mới Xóa bảng DROP TABLE Tên_bảng; 12
  13. SỬA CẤU TRÚC BẢNG Thêm trường ALTER TABLE Tên_bảng ADD COLUMN Tên_cột kiểu_dữ_liệu [Thông tin khác] Đổi tên trường ALTER TABLE Tên_bảng CHANGE Tên_cột_cũ Tên_cột_mới kiểu_dữ_liệu [Thông tin bổ sung] Xem danh sách SHOW COLUMNS FROM tên_bảng; các trường Xóa trường ALTER TABLE Tên_bảng DROP Tên_cột Thêm trường ALTER TABLE Tên_bảng ADD Index Index (Tên_cột); Xóa trường ALTER TABLE Tên_bảng DROP Index Index (Tên_cột);; 13
  14. CÁC TRUY VẤN XỬ LÝ BẢN GHI • Thêm bản ghi − INSERT INTO tên_bảng(trường1, trường2, ) VALUES (giá trị1,giá trị2, ) • Xóa bản ghi − DELETE FROM tên_bảng WHERE điều_kiện • Sửa bản ghi − UPDATE tên_bảng SET cootj1=giá trij1, cột 2=giá trị 2 WHERE điều_kiện 14
  15. CÁC TRUY VẤN XỬ LÝ BẢN GHI • Tìm kiếm bản ghi − Select*from tên_bảng − Select*from tên_bảng where điều_kiện − Select trườngf1,trườngf2, from tên_bảng where điều kiện ĐIỀU KIỆN: . Kết quả trả về : True/False . Điều kiện đơn hoặc điều kiện kết hợp 15
  16. CÁC TRUY VẤN XỬ LÝ BẢN GHI Các loại điều kiện cơ bản: . So sánh đơn giản . In, not in . Like . Between Các loại điều kiện phức hợp:Sử dụng kết hợp với các hàm hoặc các truy vấn lồng 16
  17. CÁC TRUY VẤN XỬ LÝ BẢN GHI Điều kiện so sánh : . Là các phép toán cơ bản :=, , = Điều kiện In, Not in: . Kiểm tra giá trị có nằm trong tập hợp không . True nếu có giá trị nằm trong (in) hoặc ko nằm trong (not in) tập giá trị cho trước 17
  18. CÁC TRUY VẤN XỬ LÝ BẢN GHI Điều kiện Like : . Tìm kiếm theo từ khóa với các trường chuỗi . Cú pháp: . LIKE ‘%từ_khóa%’ . LIKE ‘%từ_khóa’ . LIKE ‘từ_khóa%’ . Trả về các bản ghi có chứa các từ khóa ở các vị trí tương ứng 18
  19. CÁC TRUY VẤN XỬ LÝ BẢN GHI Điều kiện Between and: . Trả về các bản ghi có giá trị của trường nằm giữa hai giá trị xác định . Cú pháp : Between x and y . Ví dụ : Select*from nhanvien where manhanvien between 2 and 20; 19
  20. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn có sắp xếp (order by): . Sử dụng từ khóa order by sau where . Cú pháp : Order by trường_1 asc|desc trường_2 asc|desc . Ví dụ : Selec*from nhanvien where hoten like ‘%Minh’ order by ngaysinh desc 20
  21. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn loại bỏ bản ghi trùng (distinct): . Sử dụng loại bỏ bản ghi có giá trị trùng nhau . Cú pháp : Select distinct trường_1,trường_2 from tên_bảng . Ví dụ : Select distinct hoten,ngaysinh from sinh_viên 21
  22. CÁC TRUY VẤN XỬ LÝ BẢN GHI Sử dụng bí dánh (alias) Cho phép đặt tên trường, bảng bằng bí danh (alias) Giúp truy vấn ngắn gọn hơn Giảm thiểu sự nhập nhằng giữa các trường trùng tên trên các bản ghi khác nhau Sử dụng : tên trường|bảng AS bí_danh 22
  23. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn gom nhóm (group by): . Sử dụng để gom nhóm và loại bỏ bản ghi trùng nhau . Có thể kết hợp với các hàm khác . Cú pháp : Selec*from tên_bảng where điều_kiện group by tên_trường . Ví dụ : . Lấy danh sách một bản ghi có user_id là 1, chỉ có duy nhất 1 bản ghi Select*from user_group where user_id=1 group by user_id 23
  24. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn điều kiện với having: . Cho phép thiết lập điều kiện thay vì dùng where . Có thể kết hợp với group by . Cú pháp : having điều_kiện . Ví dụ : Select *from users having id>5 24
  25. CÁC TRUY VẤN XỬ LÝ BẢN GHI Giới hạn kết quả trả về: . Cú pháp : limit x,y . X là bản ghi bắt đầu, y là số bản ghi cần lấy . Ví dụ : Selec*from users limit 4,20; 25
  26. CÁC TRUY VẤN XỬ LÝ BẢN GHI Thứ tự xuất hiện của các từ khóa : . Select . Distinct . From . Where . Group by . Having . Order by . Limit 26
  27. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn trên nhiều bảng :Cách 1 : Truy vấn trực tiếp . Select trường1,trường2, From bảng1,bảng2, Cách 2 : Sử dùng phép toán JOIN . SELECT bảng1 LEFT JOIN|INNER JOIN| RIGHT JOIN bảng2 ON điều_kiện_nối WHERE các điều kiện khác 27
  28. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn lồng (sub select) : Cho phép sử dụng một câu lệnh SQL trong một câu lệnh SQL khác Câu lệnh SQL con phải trả kết quả phù hợp với ngữ cảnh sử dụng Có thể sử dụng câu lệnh SQL con như là một bảng ảo Ví dụ : Select*from users where id in(select user_id from groups where group_id=5) 28
  29. CÁC TRUY VẤN XỬ LÝ BẢN GHI Truy vấn kết hợp (union) : Cho phép nối nhiều câu lệnh SQL lại với nhau để cho ra một tập bản ghi trả về duy nhất Cú pháp : Sql1 UNION sql2 UNION sql3 Số lượng và kiểu dữ liệu của các trường trong các truy vấn sql1,s1l2,sql3 phải tương xứng nhau Ví dụ : Select tên from users UNION select name from groups 29
  30. Thực hiện truy cập CSDL MySQL Bước 1 : Tạo kết nối đến database server Bước 2 : Xây dựng truy vấn và thực hiện truy vấn Bước 3 : Xử lý kết quả trả về Bước 4 : Đóng kết nối đến Server 30
  31. Bước 1 $conn=mysqli_connect(“máy_chủ”,”tên”,” mật_khẩu”,”tên csdl”) or die (“Không kết nối được”); 31
  32. Bước 2 $conn=mysqli_query($conn,”Lệnh SQL”) or die (“Không kết nối được”); Mysqli_multi_query(“SQL1;SQL2;”) : thực hiện nhiều câu query 32
  33. Bước 3 Các hàm cần thiết : . Mysqli_affected_rows() : Số bản ghi bị tác động bởi lệnh mysqli_query liền trước . Mysqli_error() : Thông báo lỗi (nếu có) . Mysqli_errno() : Mã lỗi 33
  34. Bước 3 (tt) Trong trường hợp bước 3 là SELECT $rs=mysqli_query($conn,”SELECT ”) or die (“Không kết nối được”); Các hàm cần thiết : . Mysqli_num_rows($rs) : Số lượng bản ghi trong $rs . $r=mysqli_fetch_array($rs): Trả 1 dòng của $rs vào $r dưới dạng mảng . $r=mysqli_fetch_assoc($rs) : trả về dạng mảng . $r=mysqli_fetch_object($rs): Trả 1 dòng của $rs vào $r dưới dạng object 34
  35. Bước 4 mysqli_close($biến_kết_nối) 35
  36. Sử dụng tiếng Việt Phần không sử dụng CSDL MySQL phải lưu tệp với mã UTF-8 trong phần thẻ head Phần sử dụng CSDL MySQL :  Khai báo câu lẹnh : mysqli_query($conn,”SET NAMES ‘utff8’”) trước câu lệnh mysqli_query($conn,$sql) với $sql là một câu lệnh Select Ví dụ: 36
  37. Thực hiện truy cập CSDL MySQL hướng đối tượng Bước 1 : Tạo kết nối đến database server Bước 2 : Xây dựng truy vấn và thực hiện truy vấn Bước 3 : Xử lý kết quả trả vè Bước 4 : Đóng kết nối đến Server 37
  38. Bước 1 $conn=mysqli_connect(“máy_chủ”,”tên”,” mật_khẩu”,”tên csdl”); If($conn->connect_error) die (“Không kết nối được”.$conn->connect_error); 38
  39. Bước 2 $biến=$conn->query(”Lệnh SQL”) or die (“Không kết nối được”); $conn->multi_query(“$sql”) : thực hiện nhiều câu truy vấn cùng lúc 39
  40. Bước 3 Trong trường hợp bước 3 là SELECT $rs=$conn->query(”SELECT ”) Các hàm cần thiết : . $rs->num_rows($rs) : Số lượng bản ghi trong $rs . $r=$rs->fetch_assoc(): Trả 1 dòng của $rs vào $r dưới dạng mảng . $r=$rs->fetch_array : Trả 1 dòng của $rs vào $r dưới dạng mảng . $r=$rs->fetch_object : Trả 1 dòng của $rs vào $r dưới dạng mảng 40
  41. Bước 4 $conn->close(); 41
  42. Thực hiện truy cập CSDL MySQL với PHP data object Bước 1 : Tạo kết nối đến database server Bước 2 : Xây dựng truy vấn và thực hiện truy vấn Bước 3 : Xử lý kết quả trả vè Bước 4 : Đóng kết nối đến Server 42
  43. Bước 1 43
  44. Bước 2 $conn->exec(“lệnh sql”); trả về số bản ghi bị tác động, không dùng cho câu lệnh select $conn->query(“lệnh sql”); $conn->prepare(); $conn->excute() 44
  45. Bước 3 Trong trường hợp bước 3 là SELECT $st=$conn->prepare(“SELECT ”) $st->excute(); trả về object $st->fetchAll() : Lấy tất cả dữ liệu trả về mảng $st ->fetch() : lấy bản ghi $st->rowCount() : số bản ghi $st->setFetchMode(PDO::FETCH_ASSOC); thiết lập chế độ fetch dữ liệu Hoặc $st=$conn->query(“select ”);trả về mảng 45
  46. Bước 4 $conn->null; 46