Bài giảng Cơ sở dữ liệu (Database) - Chương 5: Tích hợp cơ sở dữ liệu trong các ứng dụng - Vũ Hải

Web nội dung tĩnh  Các trang web bằng HTML có nội dung cố định  Chỉ thay đổi khi người quản trị cập nhật lại nội dung  Người dùng không thể tương tác và thay đổi nội dung của trang web  Không thể tuỳ biến nội dung trang web tuỳ theo thời gian, người dùng,… hay các điều kiện khác Web nội dung động:  Lập trình để sinh ra mã HTML bằng các ngôn ngữ web  Có thể tuỳ biến nội dung trang web tuỳ theo thời gian, người dùng,… hay các điều kiện khác

pdf44 trang | Chia sẻ: candy98 | Lượt xem: 799 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu (Database) - Chương 5: Tích hợp cơ sở dữ liệu trong các ứng dụng - Vũ Hải, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5: Tích hợp cơ sở dữ liệu trong các ứng dụng 1 PHP & MYSQL TRONG ỨNG DỤNG WEB 2 Sơ lược về web  Các trang web hiển thị trên trình duyệt được mô tả bằng ngôn ngữ HTML  HTML là một ngôn ngữ đánh dấu, dùng các thẻ (tag) và thuộc tính (attribute) để mô tả các đối tượng trong văn bản cần hiển thị  Mỗi đối tượng được bao bởi một thẻ mở và một thẻ đóng . Nếu trong đối tượng không chứa gì, có thể viết gộp thẻ đóng và thẻ mở làm một:  Thuộc tính được định nghĩa trong thẻ mở: ...  Các đối tượng có thể được định nghĩa lồng nhau 3 Cấu trúc một trang web  Một trang web là một file văn bản có cấu trúc cơ bản như sau:  Tiêu đề trang web Nội dung  Các thẻ cơ bản:  , , , 4 Web nội dung tĩnh  Các trang web bằng HTML có nội dung cố định  Chỉ thay đổi khi người quản trị cập nhật lại nội dung  Người dùng không thể tương tác và thay đổi nội dung của trang web  Không thể tuỳ biến nội dung trang web tuỳ theo thời gian, người dùng, hay các điều kiện khác Web Service (Apache, IIS,) Web Browser (Firefox, Chrome, IE, Webkit,) network 5 Web nội dung động Script Engine (PHP, ASP, JSP,) Web Service (Apache, IIS,) Web Browser (Firefox, Chrome, IE, Webkit,) Database Server (MySQL, MSSQL,) network n et w or k 6  Web nội dung động:  Lập trình để sinh ra mã HTML bằng các ngôn ngữ web  Có thể tuỳ biến nội dung trang web tuỳ theo thời gian, người dùng, hay các điều kiện khác search for all books search.php result in html format list all books Giới thiệu PHP  PHP  Một ngôn ngữ rất phổ biến để lập trình web  Ngôn ngữ dạng script khá gần với C  Nguyên tắc hoạt động:  Sinh ra mã HTML của trang web bằng các hàm print(), echo()  Chạy trực tiếp không qua biên dịch  Mã lệnh PHP nằm trong thẻ <?php // ... ?> 7 Ví dụ một PHP script <?php $title = 'Tiêu đề trang web'; $logo_img = 'logo.jpg'; ?> Nội dung " /> 8 Một số khái niệm của PHP  Biến:  Dùng dấu $ trước tên, không cần khai báo, không có kiểu cố định  $x = 100; $x = 'Value: ' . $x;  Mảng:  for ($i=0; $i<10; $i++) $a[$i] = 20*$i; 9 Một số khái niệm của PHP  Chuỗi ký tự: dùng '...' hoặc "..."  $s1 = '$100'; $s2 = "Price: $s1"; print('' . $s2 . ''); Price: $100 10 Tham số của trang web với phương thức GET  Khái niệm:  Tương tự như việc các chương trình có tham số từ dòng lệnh, các trang web cũng có các tham số được cho ở URL  PHP cho phép sử dụng các tham số này thông qua mảng $HTTP_GET_VARS (với chỉ số là tên của tham số)  Ví dụ: print('ID: ' . $HTTP_GET_VARS['ID'] . '' . 'Name: ' . $HTTP_GET_VARS['Name'] . '' . 'Sex: ' . $HTTP_GET_VARS['Sex']); 11 SỬ DỤNG MYSQL TRONG PHP 12 MySQL với PHP  PHP cung cấp sẵn một thư viện để truy cập các CSDL sử dụng MySQL  Các tính năng và cách sử dụng  Thiết lập kết nối  Thực hiện các câu truy vấn  Lấy kết quả  Kiểm tra lỗi 13 Thiết lập và đóng kết nối  Thiết lập kết nối:  mysql_connect($server, [$username, $password])  Trả về kết nối được thiết lập  Chọn CSDL làm việc:  mysql_select_db($db_name, [$conn])  Đóng kết nối:  mysql_close($conn) 14  $server = '192.168.1.50'; $usr = 'abc'; $pwd = '12345'; $db_name = 'myweb'; $conn = mysql_connect($server, $usr, $pwd); if ($conn == null) exit('Database error'); mysql_select_db($db_name); // Do stuff... mysql_close($conn); Kiểm tra lỗi  Dùng các hàm sau để lấy thông tin về lỗi:  Mã lỗi: int mysql_errno($conn)  Thông điệp lỗi: string mysql_error($conn) 15 Kiểm tra lỗi  Ví dụ:  $conn = mysql_connect($server, $usr, $pwd); if ($conn == null) { print('Error ' . mysql_errno($conn) . ': ' . mysql_error($conn)); exit(1); } 16 Thực hiện câu truy vấn  Để thực hiện câu truy vấn, dùng hàm:  $result = mysql_query($query, [$conn])  $query: chuỗi ký tự chứa câu truy vấn  $conn: kết nối đã được thiết lập  Kết quả trả về:  Nếu xảy ra lỗi, $result = FALSE  Nếu thành công, tuỳ thuộc câu truy vấn  SELECT: trả kết quả vào biến $result.  INSERT, UPDATE, DELETE, DROP: $result=TRUE 17 Lấy kết quả trả về của câu lệnh SELECT  Sau khi thực hiện câu truy vấn, gọi hàm sau để lấy từng hàng kết quả:  array mysql_fetch_array($result, $type)  $type: kiểu chỉ số mảng  MYSQL_ASSOC: chỉ số bằng tên thuộc tính  MYSQL_NUM: chỉ số bằng số thứ tự  MYSQL_BOTH: cả hai chỉ số 18 Lấy kết quả trả về của câu lệnh SELECT  Lấy về giá trị 1 thuộc tính:  mysql_result($result,$row,$field)  $row: số dòng. Bắt đầu = 0.  $field: thuộc tính cần lấy giá trị.  Field offset  Field name  Table.fieldname 19 Lấy kết quả trả về của câu lệnh SELECT  Cuối cùng, kết thúc và giải phóng bộ nhớ đệm chứa kết quả:  mysql_free_result($result)  Di chuyển con trỏ trong kết quả:  mysql_data_seek($result, $row_num) 20 Các thông tin về kết quả trả về  Số thuộc tính (trường) của kết quả:  int mysql_num_fields($result)  Số hàng:  int mysql_num_rows($result) 21 Các thông tin khác  ID của dữ liệu mới được thêm  int mysql_insert_id($conn)  ID phải được định nghĩa với thuộc tính AUTO_INCREMENT  $sql = "INSERT INTO person VALUES ('Berge','Refsnes','Sandnes','17')"; $result = mysql_query($sql,$con); echo "ID of last inserted record is: " . mysql_insert_id(); 22 Các thông tin khác  Số hàng chịu ảnh hưởng của thao tác trước (câu lệnh INSERT, UPDATE,)  int mysql_affected_rows($conn)  mysql_select_db("mydb"); mysql_query("DELETE FROM mytable WHERE id < 5"); $rc = mysql_affected_rows(); echo "Records deleted: " . $rc; 23 Ví dụ - SELECT $result = mysql_query(‘select ID, NICKNAME, NAME from USER’, $conn); $num_rows = mysql_num_rows($result); print('Number of rows: ' . $num_rows . ''); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { print('ID: ' . $row['ID'] . ', ' . 'Nickname: ' . $row['NICKNAME'] . ', ' . 'Name: ' . $row['NAME'] . ''); } mysql_free_result($result); 24 Ví dụ - INSERT if (mysql_query("insert into USER(username, password, level) values('superhero', 'chipchip', 3)", $conn) == FALSE) handle_error($conn); print(mysql_affected_rows($conn) . ' rows added'); print('ID of inserted user: ' . mysql_insert_id($conn)); 25 Ví dụ - UPDATE if (mysql_query('update USER set level = 5 where id in (2, 3, 4)', $conn) == FALSE) handle_error($conn); print(mysql_affected_rows($conn) . ' rows updated'); 26 SỬ DỤNG MYSQL TRONG PHP VÍ DỤ 27 Ví dụ 1  Tạo một cơ sở dữ liệu Future, chứa bảng Friend.  Đọc vào và hiển thị nội dung của bảng Friend trên giao diện Web 28 Ví dụ 1  Tạo một cơ sở dữ liệu Future, chứa bảng Friend.  Sử dụng trực tiếp trên MySQL Query Browser 29 Ví dụ 1  Tạo một cơ sở dữ liệu Future, chứa bảng Friend.  Sử dụng trực tiếp trên MySQL Query Browser 30 Ví dụ 1  PHP script: 31 Ví dụ 1  PHP script: 32 Ví dụ 1 33 Ví dụ 1 34 Ví dụ 1 35 Ví dụ 2  Thêm vào dữ liệu cho bảng Friend từ HTML form 36 Ví dụ 2 37 Ví dụ 2  All-in-one 38 39 Ví dụ 2  All-in-one 40 Ví dụ 2  All-in-one 41 Ví dụ 2  All-in-one 42 Ví dụ 2  All-in-one 43 Ví dụ 2  All-in-one Bài tập 1. Định nghĩa một quan hệ SinhVien, sau đó viết một chương trình PHP thêm vào CSDL một sinh viên và in ra ID của sinh viên vừa được thêm 2. Viết chương trình PHP nhập ID của một sinh viên và in ra thông tin của sinh viên đó 3. Viết chương trình PHP nhập tên của sinh viên và in ra thông tin những người có tên như đã nhập 44