Ví dụ lớp kết nối cơ sở dữ liệu PHP PDO
Do tính đơn giản và dễ sử dụng của nó, PHP là ngôn ngữ kịch bản mã nguồn mở có mục đích chung được sử dụng rộng rãi. PHP được sử dụng để tạo các trang web động và tương tác một cách nhanh chóng và có thể truy cập vào nhiều hệ thống quản lý cơ sở dữ liệu quan hệ như MySQL, PostgreSQL và SQLite. Nhiều người trong chúng ta đã truy cập cơ sở dữ liệu MySQL bằng cách sử dụng phần mở rộng MySQL hoặc MySQLi. Kể từ phiên bản 5. 1 PHP cung cấp thư viện trừu tượng hóa kết nối cơ sở dữ liệu mới, PHP Data Objects (PDO) Show nội dung PDO là gì?
Cài đặt PDO PDO được chia thành hai thành phần Cài đặt PDO trên hệ thống Unix Cài đặt PDO trên hệ thống Windows Để có được hiệu ứng của một cấu hình mới trong php. ini, bạn sẽ cần phải khởi động lại PHP Hằng số được xác định trước Cơ sở dữ liệu được hỗ trợ Giao diện PDO có sẵn trong các trình điều khiển sau Tên cơ sở dữ liệuTên trình điều khiểnCubridPDO_CUBRIDFreeTDS/Microsoft SQL Server/SybasePDO_DBLIBFirebird/Interbase 6PDO_FIREBIRDIBM DB2PDO_IBMIBM Informix Dynamic ServerPDO_INFORMIXMySQL 3. x/4. x/5. xPDO_MYSQLGiao diện cuộc gọi OraclePDO_OCIODBC v3 (IBM DB2, unixODBC và win32 ODBC)PDO_ODBCPostgreSQLPDO_PGSQLSQLite 3 và SQLite 2PDO_SQLITEMicrosoft SQL Server / SQL AzurePDO_SQLSRV4DPDO_4D Cơ sở dữ liệu mẫu, bảng, cấu trúc bảng, bản ghi bảng cho các ví dụ khác nhau mysql Tên cơ sở dữ liệu. giờ Cấu trúc của bảng. Chi tiết người dùng
Kỷ lục của bảng. Chi tiết người dùng
PostgreSQL Tên cơ sở dữ liệu. postgres Cấu trúc của bảng. Chi tiết người dùng
Kỷ lục của bảng. Chi tiết người dùng
Lớp học PDO Lớp đại diện cho kết nối giữa PHP và máy chủ cơ sở dữ liệu cú pháp PDO { __construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] ) bool beginTransaction ( void ) bool commit ( void ) mixed errorCode ( void ) array errorInfo ( void ) int exec ( string $statement ) mixed getAttribute ( int $attribute ) static array getAvailableDrivers ( void ) bool inTransaction ( void ) string lastInsertId ([ string $name = NULL ] ) PDOStatement prepare ( string $statement [, array $driver_options = array() ] ) PDOStatement query ( string $statement ) string quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] ) bool rollBack ( void ) bool setAttribute ( int $attribute , mixed $value ) }mp($var_name); } Chi tiết về các phương thức của lớp PDO PDO. __xây dựng Tạo một phiên bản PDO đại diện cho một kết nối đến cơ sở dữ liệu cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] ) Thông số dsn - Tên nguồn dữ liệu hoặc DSN, chứa thông tin cần thiết để kết nối với cơ sở dữ liệu. Chuỗi chứa tên tiền tố (e. g. pssql cho cơ sở dữ liệu PostgreSQL), dấu hai chấm và từ khóa máy chủ Giá trị trả về kết nối cơ sở dữ liệu Các kết nối được thiết lập bằng cách tạo các thể hiện của lớp cơ sở PDO. Bạn muốn sử dụng trình điều khiển nào không quan trọng; . Hàm tạo chấp nhận các tham số để chỉ định nguồn cơ sở dữ liệu (được gọi là DSN) và tùy chọn cho tên người dùng và mật khẩu (nếu có) kết nối mysql
Kết nối PostgreSQL
Xử lý lỗi kết nối Nếu có bất kỳ lỗi kết nối nào, một đối tượng PDOException sẽ bị ném. Bạn có thể bắt ngoại lệ nếu bạn muốn xử lý tình trạng lỗi hoặc bạn có thể để nó cho trình xử lý ngoại lệ chung có thể được thiết lập thông qua set_Exception_handler() mysql Ở đây id người dùng là sai
đầu ra Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO) PostgreSQL Ở đây tên cơ sở dữ liệu là sai
đầu ra Lỗi. SQLSTATE[08006] [7] không thể kết nối với máy chủ. Kết nối bị từ chối (0x0000274D/10061) Máy chủ có đang chạy trên máy chủ "localhost" (. 1) và chấp nhận kết nối TCP/IP trên cổng 5432? . xác thực mật khẩu không thành công cho người dùng "postgres" Đóng kết nối
kết nối liên tục Nhiều ứng dụng web sẽ được hưởng lợi từ việc tạo kết nối liên tục đến máy chủ cơ sở dữ liệu. Các kết nối liên tục không bị đóng ở cuối tập lệnh nhưng được lưu vào bộ nhớ cache và được sử dụng lại khi một tập lệnh khác yêu cầu kết nối bằng cùng thông tin đăng nhập. Bộ đệm kết nối liên tục cho phép bạn tránh được chi phí thiết lập kết nối mới mỗi khi tập lệnh cần nói chuyện với cơ sở dữ liệu, dẫn đến ứng dụng web nhanh hơn mysql ________số 8_______PostgreSQL
PDO. bắt đầu giao dịch Tắt chế độ tự động cam kết và bắt đầu giao dịch. Giao dịch bắt đầu với PDO. bắt đầu Giao dịch và sẽ kết thúc khi PDO. cam kết hoặc PDO. khôi phục được gọi là cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )0 Giá trị trả về Thí dụ PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )1 PDO. làm Cam kết giao dịch, đưa kết nối cơ sở dữ liệu về chế độ tự động cam kết cho đến lần gọi tiếp theo tới PDO. beginTransaction() bắt đầu một giao dịch mới cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )2 Giá trị trả về Thí dụ PDO. mã lỗi PDO. errorCode truy xuất SQLSTATE (giá trị lớp hai ký tự theo sau là giá trị lớp con ba ký tự) được liên kết với thao tác cuối cùng trên bộ điều khiển cơ sở dữ liệu cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )3 Giá trị trả về Thí dụ Trong ví dụ này, tên của cột bị sai chính tả (giới tính thay vì giới tính), gây ra lỗi. errorCode() hiển thị lỗi PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )4 đầu ra PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )5 PDO. errorInfo Truy xuất thông tin lỗi mở rộng liên quan đến thao tác cuối cùng trên xử lý cơ sở dữ liệu cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )6 Giá trị trả về 0. Mã lỗi SQLSTATE Thí dụ PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )7 đầu ra PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )8 PDO. giám đốc điều hành Thực thi câu lệnh SQL và trả về số hàng bị ảnh hưởng bởi câu lệnh cú pháp PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )9 Thông số Giá trị trả về Thí dụ Trong ví dụ sau (cơ sở dữ liệu PostgreSQL được sử dụng), tên của cột bị sai chính tả (giới tính thay vì giới tính), gây ra lỗi, lỗi này sau đó được báo cáo 0đầu ra 1PDO. getAttribute Retrieves the value of a predefined PDO or driver attribute cú pháp 2Parameters Giá trị trả về Thí dụ 3đầu ra 4PDO. getAvailableDrivers Trả về một mảng các trình điều khiển PDO có sẵn trong bản cài đặt PHP của bạn cú pháp 5Giá trị trả về Thí dụ Ví dụ sau trả về một mảng tên trình điều khiển PDO có sẵn 6đầu ra 7PDO. trong giao dịch Kiểm tra xem một giao dịch hiện đang hoạt động trong trình điều khiển. Phương pháp này chỉ hoạt động đối với trình điều khiển cơ sở dữ liệu hỗ trợ giao dịch cú pháp 8Giá trị trả về PDO. LastInsertId Trả về mã định danh của hàng hoặc giá trị chuỗi được chèn cuối cùng vào một bảng trong cơ sở dữ liệu cú pháp 9Giá trị trả về Thí dụ Ví dụ sau (cơ sở dữ liệu PostgreSQL được sử dụng) trả về ID của giá trị chuỗi hoặc hàng được chèn cuối cùng 0PDO. chuẩn bị Chuẩn bị một tuyên bố để thực hiện cú pháp 1Parameters Giá trị trả về Ví dụ 1 Ví dụ sau chuẩn bị một câu lệnh SQL với các tham số được đặt tên 2đầu ra 3Ví dụ - 2 Ví dụ sau chuẩn bị một câu lệnh SQL với tham số dấu chấm hỏi 4đầu ra 3PDO. truy vấn Thực thi một truy vấn SQL và trả về tập kết quả dưới dạng đối tượng PDOStatement cú pháp 6Parameters Giá trị trả về Thí dụ Trong ví dụ sau PDO. query() lặp qua tập hợp hàng được trả về bởi câu lệnh SELECT 7đầu ra 8PDO. trích dẫn Đặt dấu ngoặc kép xung quanh chuỗi đầu vào để sử dụng trong truy vấn cú pháp 9Parameters Giá trị trả về Thí dụ 0đầu ra 1PDO. cuộn lại Hoàn nguyên giao dịch hiện tại, do PDO bắt đầu. bắt đầu giao dịch(). Một PDOException sẽ bị ném nếu không có giao dịch nào đang hoạt động cú pháp 2Giá trị trả về Thí dụ Ví dụ sau bắt đầu một giao dịch và đưa ra câu lệnh DROP trước khi khôi phục các thay đổi. Trong MySQL, câu lệnh DROP TABLE tự động thực hiện giao dịch, do đó sẽ không có gì quay trở lại 3PDO. setAttribute Đặt một thuộc tính cú pháp 4Dưới đây là danh sách một số thuộc tính chung có sẵn
Giá trị trả về Thí dụ Ví dụ sau cho biết cách đặt PDO. Thuộc tính ATTR_ERRMODE 5đầu ra 6Lớp PDOStatement Đại diện cho một câu lệnh đã chuẩn bị và sau khi câu lệnh được thực thi, một tập hợp kết quả được liên kết Thông tin chi tiết về lớp học 7Tuyên bố PDO. ràng buộcColumn Liên kết một biến PHP với một cột trong tập hợp kết quả cú pháp 8Parameters TênMô tảLoại cộtSố cột (được lập chỉ mục 1) hoặc tên của cột trong tập hợp kết quả. mixparamTên của biến PHP mà cột sẽ được liên kết. mixtypeLoại dữ liệu của tham số, được chỉ định bởi PDO. hằng số PARAM_*. intmaxLenA gợi ý cho phân bổ trước (tùy chọn). intdriverdata(Các) tham số tùy chọn cho trình điều khiển. Trộn Giá trị trả về Thí dụ 9đầu ra Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)0 Tuyên bố PDO. ràng buộcParam Liên kết một tham số với tên biến đã chỉ định cú pháp Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)1 Parameters Tên Mô tả Loại tham số Định danh tham số. Đối với câu lệnh đã chuẩn bị sử dụng trình giữ chỗ có tên, đây sẽ là tên tham số của biểu mẫu. Tên. mixvariableTên của biến PHP để liên kết với tham số câu lệnh SQL. mixdata_typeOptional, PDO. PARAM_* hằng số. intlengthLength của kiểu dữ liệu. intdriver_optionsCác tùy chọn tùy chọn (hỗn hợp) dành riêng cho trình điều khiển. Trộn Giá trị trả về Ví dụ 1 Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)2 Ví dụ - 2 Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)3 Tuyên bố PDO. bindValue Liên kết một giá trị với một trình giữ chỗ có tên hoặc dấu chấm hỏi trong câu lệnh SQL cú pháp Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)4 Parameters Tên Mô tả Loại tham số Định danh tham số. Đối với câu lệnh đã chuẩn bị sử dụng trình giữ chỗ có tên, đây sẽ là tên tham số của biểu mẫu. Tên. giá trị hỗn hợpGiá trị để liên kết với tham số. mixdata_typeOptional, PDO. PARAM_* hằng số. int Giá trị trả về Ví dụ 1 Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)5 đầu ra Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)6 Ví dụ - 2 Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)7 đầu ra Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)8 Tuyên bố PDO. đóng con trỏ Đóng con trỏ, cho phép thực hiện lại câu lệnh cú pháp Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' (using password: NO)9 Giá trị trả về Ví dụ 1 0Tuyên bố PDO. số cột Trả về số cột trong một tập hợp kết quả cú pháp 1Giá trị trả về Ví dụ 1 2đầu ra 3Tuyên bố PDO. gỡ lỗiDumpParams Kết xuất một lệnh chuẩn bị SQL p>Cú pháp. 4Giá trị trả về Ví dụ 1 5đầu ra 6Tuyên bố PDO. mã lỗi Tìm nạp SQLSTATE của hoạt động gần đây nhất trên đối tượng câu lệnh cơ sở dữ liệu cú pháp 7Giá trị trả về Ví dụ 1 8đầu ra 9Tuyên bố PDO. errorInfo Truy xuất thông tin lỗi liên quan đến thao tác cuối cùng trên xử lý câu lệnh cú pháp 0Parameters TênMô tảTypetham số Giá trị trả về 0 - Mã lỗi SQLSTATE Ví dụ 1 1đầu ra 2PDOStatement. execute Executes a prepared statement cú pháp 3Parameters NameDescriptionTypeinput_parametersMột mảng chứa các giá trị cho các dấu tham số. array Giá trị trả về Ví dụ 1 4đầu ra 5PDOStatement. fetch Fetches the next row from a result set Syntax 6Parameters NameDescriptionTypeparameterKiểm soát cách hàng tiếp theo sẽ được trả lại cho người gọi. Giá trị này phải là một trong các PDO. FETCH_* constants (see the constants details), defaulting to the value of PDO. ATTR_DEFAULT_FETCH_MODE (which defaults to PDO. FETCH_BOTH). intcursor_orientationThis value must be one of the PDO. FETCH_ORI_* constants, defaulting to PDO. FETCH_ORI_NEXT. intoffsetFor a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO. FETCH_ORI_ABS, giá trị này chỉ định số lượng tuyệt đối của hàng trong tập hợp kết quả sẽ được tìm nạp. int Giá trị trả về Ví dụ 1 7đầu ra 8Tuyên bố PDO. lấy tất cả Trả về một mảng chứa các hàng trong tập hợp kết quả cú pháp 9Parameters NameDescriptionTypefetch_styleSpecifying the format of the row data. mixfetch_argument Đối số này có ý nghĩa khác nhau tùy thuộc vào giá trị của tham số fetch_style Giá trị trả về Ví dụ 1 0đầu ra 1
Tuyên bố PDO. tìm nạpColumn Trả về một cột trong một hàng từ hàng tiếp theo của tập hợp kết quả cú pháp 2Parameters TênMô tảTypecolumn_numberMột số nguyên tùy chọn cho biết số cột dựa trên số không. Mặc định là 0 (cột đầu tiên trong hàng). Trộn Giá trị trả về Ví dụ 1 3đầu ra 4
Tuyên bố PDO. tìm nạp đối tượng Truy xuất hàng tiếp theo dưới dạng đối tượng cú pháp 5Parameters NameDescriptionTypeclass_nameTên lớp cần tạo. stringctor_argsMột mảng có đối số cho hàm tạo của lớp tùy chỉnh. mảng Giá trị trả về 6đầu ra 7Tuyên bố PDO. getAttribute Truy xuất thuộc tính câu lệnh cú pháp 8Nhận một thuộc tính của câu lệnh. Hiện tại, không có thuộc tính chung nào tồn tại nhưng trình điều khiển duy nhất cụ thể Giá trị trả về Tuyên bố PDO. getColumnMeta Trả về siêu dữ liệu cho một cột trong tập hợp kết quả cú pháp 9Parameters NameDescriptionTypecolumnCột có chỉ số 0 trong tập hợp kết quả. int Giá trị trả về Ghi chú. Chức năng này là THỬ NGHIỆM Ví dụ 1 0đầu ra 1Tuyên bố PDO. tiếp theoRowset Di chuyển con trỏ đến tập hợp hàng tiếp theo trong bộ điều khiển câu lệnh nhiều hàng cú pháp 2Giá trị trả về Ví dụ 1 3đầu ra 4Tuyên bố PDO. đếm số hàng Trả về số hàng bị ảnh hưởng (thêm, xóa hoặc thay đổi) bởi câu lệnh cuối cùng cú pháp 5Giá trị trả về Ví dụ 1 6đầu ra 7Tuyên bố PDO. setAttribute Đặt thuộc tính câu lệnh. Hiện tại, không có thuộc tính chung nào được đặt mà chỉ có trình điều khiển cụ thể cú pháp 8Giá trị trả về Trả về TRUE nếu thành công hoặc FALSE nếu thất bại Tuyên bố PDO. setFetchMode Đặt chế độ tìm nạp mặc định cho câu lệnh này cú pháp 9Parameters NameDescriptionTypemodeChế độ tìm nạp phải là một trong các PDO. FETCH_* hằng số. Xem danh sách hằng số. hỗn hợpcolnoSố cột. intclassnameTên lớp. đối số stringctorargsConstructor. đối tượng mảngĐối tượng. mục tiêu Làm cách nào để kết nối với cơ sở dữ liệu bằng PDO?Kết nối cơ sở dữ liệu PDO yêu cầu bạn phải tạo đối tượng PDO mới với Tên nguồn dữ liệu (DSN), Tên người dùng và Mật khẩu . DSN xác định loại cơ sở dữ liệu, tên của cơ sở dữ liệu và bất kỳ thông tin nào khác liên quan đến cơ sở dữ liệu nếu được yêu cầu. Đây là các biến và giá trị chúng tôi đã nêu bên trong dbconfig.
Làm cách nào để kết nối cơ sở dữ liệu với lớp trong PHP?Cách kết nối cơ sở dữ liệu trong PHP bằng OOPS . lớp Cơ sở dữ liệuLớp riêng tư $host = "máy chủ cục bộ"; riêng tư $username = "root"; riêng tư $password = ""; riêng tư $db = "test_db"; công cộng chức năng __construct() Làm thế nào PHP được kết nối bằng PDO?PDO đại diện cho kết nối giữa PHP và máy chủ cơ sở dữ liệu . PDOStatement đại diện cho một câu lệnh đã chuẩn bị và sau khi câu lệnh được thực thi, một tập hợp kết quả được liên kết. PDOException đại diện cho một lỗi do PDO đưa ra.
Làm cách nào để đưa tệp kết nối vào lớp PHP?Tôi muốn bao gồm tệp cấu hình MySQL bên trong lớp PHP.
|