Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
494,46 KB
Nội dung
Bài2CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao Phân biệt khi nào sử dụng PDO và mở rộng mysqli Cách sử dụng câu lệnh dựng sẵn khi làm việc với PDO Cách sử dụng chế độ hiển thị lỗi Cách sử dụng mysqli trong cả hai hướng lậptrình hướng đối tượng và hướng cấu trúc Mục tiêu Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao2 PDO Mysqli Hàm PHP làm việc vớiMySql có sẵn Các cách sử dụng PHP để làm việc vớiMySQLBài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 3 Làm việc với truy vấn dựng sẵn Ưu nhược điểm của PDO Thiết lập chế độ hiển thị lỗi cho PDO Làm việc với PDO Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 4 Ưu điểm: Được tích hợp trong PHP phiên bản 5.1 trở lên và dùng được cho phiên bản 5.0. Cung cấp giao tiếp hướng đối tượng. Cung cấp một giao tiếp nhất quán cho phép lưu chuyển dữ liệu giữa các hệ cơ sở dữ liệu khác nhau như Oracle, DB2, Microsoft SQL Server, PostgreSQL. Tận dụng hầu hết ưu điểm các tính năng mới của MySQL phiên bản 4.1.3 trở lên. PDO (PHP Data Object) Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 5 Nhược điểm: Không làm việc trên PHP phiên bản 4.x, 3.x hay các phiên bản trước đó. Không tận dụng ưu điểm của các tính năng tiên tiến mới của MySQL phiên bản 4.1.3 trở lên, như tính năng lồng câu lệnh SQL. PDO (PHP Data Object) Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 6 Ưu điểm: Được tích hợp trong PHP phiên bản 5 trở lên. Hỗ trợ cả giao tiếp hướng đối tượng và giao tiếp kiểu cấu trúc. Tận dụng tất cả các tính năng mới của MySQL phiên bản 4.1.3 trở lên. Nhược điểm: Không làm việc vớicác hệ cơ sở dữ liệu khác ngoài MySQL. mysqli (mở rộng MySQL cải tiến) Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 7 prepare($sql_statement) lastInsertId() Một số phương thức của lớp PDO Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 8 bindValue($param, $value) execute() fetchAll() fetch() rowCount() closeCursor() Một số phương thức của lớp PDOStatement Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 9 Sử dụng phương thức fetchAll để trả về tập kết quả: Ví dụ Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 10 $query = 'SELECT * FROM products'; $statement = $db->prepare($query); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor(); foreach ($products as $product) { echo $product['productName'] . '<br />'; } [...]... echo "Database error: $error_message "; exit(); Bài2 - Các kỹthuậtlậptrình MySQL vớiPHPnângcao 18 Làm việc với mysqli Kết nối với CSDL Truy vấn và cập nhật dữ liệu Làm việc với truy vấn dựng sẵn So sánh giao diện hướng đối tượng và hướng cấu trúc Bài2 - Các kỹthuậtlậptrình MySQL vớiPHPnângcao 19 mysqli Kết nối đến cơ sở dữ liệu MySQL (kiểu hướng đối tượng): $host = 'localhost'; $username... $listPrice); $statement->execute(); Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 31 Ví dụ Hiển thị tập kết quả: < ?php while($statement->fetch()) : ?> < ?php endwhile; ?> Đóng câu lệnh: $statement->close() Bài2 - Các kỹthuậtlậptrình MySQL vớiPHPnângcao 32 Ví dụ Thực thi câu lệnh SQL dựng... $product ['listPrice'] ; ?x/td> < ?php endfor; ?> Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 25 Ví dụ Giải phóng tài nguyên được dùng bởi tập kết quả và kết nối cơ sở dữ liệu: $result->free(); // Giải phóng tập kết quả $db->close(); // Giải phóng kết nối tới cơ sở dữ liệu Bài2 - Các kỹthuậtlậptrình MySQL vớiPHPnângcao 26 Các thuộc tính của lớp mysqli dùng để kiểm tra kết quả Thuộc... 0 Bài2 - Các kỹthuậtlậptrình MySQL vớiPHPnângcao 27 Ví dụ Thực thi lệnh INSERT: // Dữ liệu mẫu $category_id = 2; $code = 'hofner'; $name = 'Hofner Icon'; $price = 499.99; // Thực thi câu lệnh SQL $query = "INSERT INTO products (categoryID, productCode, productName, listPrice) VALUES ($category_id, '$code', '$name', $price)"; $success = $db>query($query); Bài2 - CáckỹthuậtlậptrìnhMySQL với. .. $statement->closeCursor(); Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 12 Sử dụng tham số dấu hỏi (question mark parameter) $query = 'SELECT * FROM products WHERE categoryID = ? AND listPrice > ?'; $statement = $db->prepare($query); $statement->bindValue(1, $category_id); $statement->bindValue (2, $price); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor(); Bài2 - Cáckỹthuật lập. .. lậptrìnhMySQLvớiPHPnângcao 29 Làm việc với câu lệnh SQL dựng sẵn Phương thức của lớp mysqli: prepare($sql_statement) Phương thức của lớp mysqli_stmt: bind_param($fs, $vl [, $v2] ) bind result($vl [, $v2] ) execute() fetch() close () Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 30 Ví dụ Thực thi một câu lệnh dựng sẵn trả về một tập kết quả: $category_id = 2; $query = "SELECT productCode,... $product_id"; } else { echo "No rows were inserted."; } Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 15 Ba chế độ xử lý lỗi của PDO ERRMODE_SILENT ERRMODE_WARNING ERRMODE_EXCEPTION Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 16 Ví dụ Sử dụng hàm khởi tạo của lớp PDO để thiết lập chế độ xử lý lỗi: $dsn = 'mysql: host=localhost;dbname=my_guitar_shopl'; $username = 'mgs_user'; $password... $result->num_rows; Bài2 - CáckỹthuậtlậptrìnhMySQLvớiPHPnângcao 24 Ví dụ Hướng dẫn hiển thị kết quả: < ?php for ($i = 0; $i < $row_count; $i++) : $product = $result->fetch_assoc(); ?> . của PDO Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 16 Sử dụng hàm khởi tạo của lớp PDO để thiết lập chế độ xử lý lỗi: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 17 $dsn. PDOStatement Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 9 Sử dụng phương thức fetchAll để trả về tập kết quả: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 10 $query. dụng mysqli trong cả hai hướng lập trình hướng đối tượng và hướng cấu trúc Mục tiêu Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 2 PDO Mysqli Hàm PHP làm việc với MySql có sẵn Các cách