1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng PHP (Hypertext Preprocessing) - Chương 5: PHP & CSDL

21 47 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 444,29 KB

Nội dung

Bài giảng PHP (Hypertext Preprocessing) - Chương 5: PHP & CSDL trình bày các nội dung chính sau: Sử dụng PHP để kết nối với CSDL, PEAR DB, các chức năng nâng cao với PEAR DB,... Mời các bạn cùng tham khảo để nắm nội dung chi tiết.

V PHP & CSDL V.1 Sử dụng PHP để kết nối với CSDL V.2 PEAR DB V.3 Các chức nâng cao với PEAR DB V.1 Sử dụng PHP để kết nối với CSDL  Có cách kết nối PHP với CSDL – Sử dụng hàm riêng cho loại CSDL   – Ưu điểm: Tốc độ cao thiết kế cho CSDL cụ thể Tận dụng ưu điểm loại CSDL Nhược điểm: Khơng có tính khả chuyển CSDL Sử dụng hàm độc lập CSDL (thư viện PEAR DB)   Ưu điểm: Có thể sử dụng nhiều CSDL khác Nhược điểm: Chậm phương pháp trên, không tận dụng ưu điểm CSDL V.1 Sử dụng PHP để kết nối với CSDL (2)  Cài đặt thư viện PEAR – – – –   Yêu cầu: PHP phiên 5.0 Cài đặt PHP Chạy go-pear.bat Theo hướng dẫn chương trình (các tham số cần đặt mặc định) Nếu không cài đặt PEAR, mà copy từ máy khác, phải thêm vào C:/Windows/PHP.INI dòng Cấu hình Zend Studio để làm việc với PEAR DB – – Thêm vào file $Zend_dir/bin/php5/php.ini dòng  include_path=".;C:/php/pear"  extension_dir="c:/php/ext" Copy file libMySQL.dll vào $Windows/$System (nếu bạn sử dụng IIS) Các bước cài đặt kiểu mì ăn liền     Cài IIS, cài Mysql 5.0, cài PHP Copy $\Mysql\bin\libMysql.dll đến c:\windows\system32 Copy PHP.rar đè lên thư mục c:/PHP Sửa nội dung c:\windows\system32\PHP.INI, thêm vào dòng sau (để cuối file) include_path=".;C:/php/pear" extension_dir=" c:/php/ext" extension=php_mysql.dll  Sau đó, chạy local host (trên Zend phải config thêm, tốt đừng config) V.2 PEAR DB echo ""; while ($row = $table->fetchRow()) { echo " $row[0] $row[1] $row[2] $row[3] "; } echo ""; V.2 PEAR DB (2) V.2.1 Data source name V.2.2 Kết nối với sở liệu V.2.3 Kiểm tra lỗi V.2.4 Thực thi query V.2.5 Lấy kết từ query V.2.6 Giải phóng nhớ V.2.1 Data source name    dsn=Data Source Name type://username:password@protocol+host spec/database Ví dụ: – mysql:///webdb mysql://localhost/webdb mysql://bondview@localhost/webdb mysql://bondview@tcp+localhost/webdb mysql://bondview:007@localhost/webdb Type Database Mysql MySQL Pgsql PostgreSQL Ibase InterBase Msql Mini SQL Mssql Microsoft SQL Server oci8 Oracle 7/8/8i Odbc ODBC Sybase SyBase Ifx Informix Fbsql FrontBase V.2.2 Kết nối với sở liệu  Khi có DSN, bạn kết nối hàm DB::connect với cú pháp sau: –  $db = DB::connect(DSN [, options ]); – options giá trị Boolean $db = DB::connect($dsn, array('debug' => 1, 'optimize' => 'portability')); mảng V.2.3 Kiểm tra lỗi     Các phương thức DB trả DB_ERROR có lỗi q trình thực Bạn kiểm tra kết trả có phải lỗi không hàm DB::isError(); Nếu DB::isError() trả true, kết trả bạn lỗi, xem thông báo lỗi phương thức $tenbien>getMessage() $db = DB::connect($datasource); if (DB::isError($db)) { die($db->getMessage( )); } V.2.4 Thực thi query     Để thực thi query, sử dụng phương thức query() Database Object (đối tượng trả bạn kết nối thành công với CSDL hàm DB::connect() ); $db = DB::connect($datasource); $result = $db->query(sql); Cũng tương tự DB::connect(), bạn kiểm tra lỗi DB::isError() if (DB::iserror($result)) { die($result->getMessage()); } V.2.5 Lấy kết từ query    $row = $result->fetchRow([ mode ]); Hàm fetchRow() trả mảng giá trị dòng DB_ERROR (nếu có lỗi) V.2.5 Lấy kết từ query (2)   $row = $result->fetchRow([ mode ]); mode: – – – DB_FETCHMODE_ORDERED: Các cột liệt kê $row theo thứ tự 0,1,2 DB_FETCHMODE_ASSOC : Các cột liệt kê với khóa tên cột DB_FETCHMODE_OBJECT: Các cột liệt kê thành trường đối tượng V.2.5 Lấy kết từ query (3) V.2.6 Giải phóng nhớ  V.3 Các chức nâng cao với PEAR DB V.3.1 Query template V.3.2 Prepare/Execute V.3.3 Các hàm tiện ích V.3.4 Các thơng tin trả từ query() V.3.5 Metadata V.3.1 Query template   Để xây dựng query, dùng phép nối xâu kí tự dễ gây nhầm lẫn khơng nhìn thấy tổng thể câu lệnh SQL (nhất với trường hợp có sử dụng dấu nháy) Trong trường hợp này, PHP cung cấp công cụ hoạt động cho phép truyền tham số câu lệnh SQL giống lệnh printf, sử dụng ký hiệu – – –  ?: Cho số string (dấu nháy bổ sung cần thiết) |: Cho số string (không sử dụng dấu nháy) &: Tên file (dùng cho trường BLOB) V.3.2 Prepare/Execute   Khi bạn thực nhiều câu lệnh giống nhau, cách tốt dịch câu lệnh SQL trước thực phương thức prepare() Sau dịch SQL, bạn thực câu lệnh SQL cách dùng lệnh sau: – –  $response = $db->execute(compiled, values); (values: mảng chiều giá trị) $responses = $db->executeMultiple(compiled, values); (values: mảng chiều dòng, dòng mảng chiều giá trị) V.3.3 Các hàm tiện ích Ngồi hàm chung, PEAR DB cung cấp hàm cho phép thực nhanh số chức hay sử dụng: getOne(), getRow(), getCol(), getAssoc(), getAll() V.3.4 Các thông tin trả từ query() Bạn lấy thơng tin dòng, cột kết trả từ câu lệnh SQL qua hàm numRows(), numCols(), tableInfo(), affectedRows() V.3.5 Metadata Hàm getListOf() sử dụng để lấy thông tin users, databases, tables, views, functions (phụ thuộc vào hỗ trợ CSDL mà bạn sử dụng) V.3.6 Transaction Nhiều sở liệu hỗ trợ Transaction safe, để sử dụng transaction safe PHP, bạn sử dụng lệnh commit(), rollback() Để rollback(), bạn phải thiết lập autocommit false ...V.1 Sử dụng PHP để kết nối với CSDL  Có cách kết nối PHP với CSDL – Sử dụng hàm riêng cho loại CSDL   – Ưu điểm: Tốc độ cao thiết kế cho CSDL cụ thể Tận dụng ưu điểm loại CSDL Nhược điểm:... chuyển CSDL Sử dụng hàm độc lập CSDL (thư viện PEAR DB)   Ưu điểm: Có thể sử dụng nhiều CSDL khác Nhược điểm: Chậm phương pháp trên, không tận dụng ưu điểm CSDL V.1 Sử dụng PHP để kết nối với CSDL. .. var_dump($row); $row = $table->fetchRow(DB_FETCHMODE_OBJECT); var_dump($row); echo "Hoten: {$row->hodem} {$row->ten}, Ngay sinh: {$row->ngaysinh}"; ?> V.2.6 Giải phóng nhớ  < ?php require("DB .php" ); $db = DB::connect("mysql://root:root@localhost/d

Ngày đăng: 11/01/2020, 18:58

TỪ KHÓA LIÊN QUAN