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]
nội dung
PDO là gì?
- PDO - Đối tượng dữ liệu PHP
- Một tập hợp các tiện ích mở rộng PHP cung cấp lớp PDO cốt lõi và trình điều khiển cơ sở dữ liệu cụ thể
- Cung cấp lớp trừu tượng truy cập dữ liệu nhẹ trung lập với nhà cung cấp
- Tập trung vào trừu tượng hóa truy cập dữ liệu hơn là trừu tượng hóa cơ sở dữ liệu
- PDO yêu cầu các tính năng hướng đối tượng mới trong lõi của PHP 5, do đó nó sẽ không chạy với các phiên bản PHP cũ hơn
Cài đặt PDO
PDO được chia thành hai thành phần
- Lõi cung cấp giao diện
- Trình điều khiển để truy cập trình điều khiển cụ thể
Cài đặt PDO trên hệ thống Unix
-- PDO [Core] và trình điều khiển PDO_SQLITE [trình điều khiển SQLITE] được bật theo mặc định kể từ PHP 5. 1. 0. Để truy cập các cơ sở dữ liệu khác, bạn phải kích hoạt trình điều khiển PDO
-- Để cài đặt PDO làm mô-đun dùng chung, php. ini cần được cập nhật để tiện ích mở rộng PDO sẽ được tải tự động khi PHP chạy. Bạn cũng cần bật các trình điều khiển dành riêng cho cơ sở dữ liệu khác và chúng phải được liệt kê sau pdo. vì vậy, vì PDO phải được khởi tạo trước khi có thể tải các tiện ích mở rộng dành riêng cho cơ sở dữ liệu. Nếu bạn đã tạo tĩnh PDO và các tiện ích mở rộng dành riêng cho cơ sở dữ liệu, bạn có thể bỏ qua bước này
tiện ích mở rộng = pdo. vì thế
Cài đặt PDO trên hệ thống Windows
-- PDO và tất cả các trình điều khiển chính đi kèm với PHP dưới dạng tiện ích mở rộng được chia sẻ và chỉ cần được kích hoạt bằng cách chỉnh sửa tệp php. tập tin ini
tiện ích mở rộng = php_pdo. dll
Bước này không cần thiết cho PHP 5. 3 trở lên, vì DLL không còn cần thiết cho PDO
-- Tiếp theo, chọn các tệp DLL dành riêng cho cơ sở dữ liệu khác và sử dụng dl[] để tải chúng khi chạy hoặc bật chúng trong php. ini bên dưới php_pdo. dll
Để 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ờ
Tên máy chủ. máy chủ cục bộ
người dùng cơ sở dữ liệu. nguồn gốc
Mật khẩu. ''
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
Tên máy chủ. máy chủ cục bộ
người dùng cơ sở dữ liệu. postgres
Mật khẩu. abc123
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ủ
tên người dùng - Một chuỗi chứa tên người dùng. Tham số này là tùy chọn đối với một số trình điều khiển PDO
mật khẩu - Một chuỗi chứa mật khẩu của người dùng. Tham số này là tùy chọn đối với một số trình điều khiển PDO
driver_options - Tùy chọn. Một mảng key=>value của các tùy chọn kết nối dành riêng cho trình điều khiển
Giá trị trả về
Trả về một đối tượng PDO khi thành công. Nếu thất bại, trả về một đối tượng PDOException
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Thí dụ
Ví dụ sau đây, cơ sở dữ liệu MySQL có tên là hr và bảng có tên là user_details đã sử dụng. Nó bắt đầu một giao dịch và sau đó thực hiện một lệnh để thêm một hàng vào bảng user_details. Lệnh được gửi đến cơ sở dữ liệu và giao dịch được kết thúc rõ ràng bằng PDO. làm
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Thí dụ
Xem phần trước [PDO. beginTransaction] ví 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ề
Trả về SQLSTATE năm ký tự dưới dạng một chuỗi hoặc NULL nếu không có thao tác nào trên bộ điều khiển câu lệnh
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ề
Một mảng thông tin lỗi về thao tác cuối cùng được thực hiện bởi bộ xử lý cơ sở dữ liệu này. Mảng bao gồm các trường sau
0. Mã lỗi SQLSTATE
1. Mã lỗi dành riêng cho trình điều khiển
2. Thông báo lỗi dành riêng cho trình điều khiển
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
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ố
câu lệnh - Một câu lệnh SQL để chuẩn bị và thực thi
Giá trị trả về
Một số nguyên báo cáo số hàng bị ảnh hưởng. Nếu không có hàng nào bị ảnh hưởng, PDO. exec[] trả về 0
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
One of the PDO. ATTR_* constants. The constants that apply to database connections are as follows
PDO. ATTR_AUTOCOMMIT
PDO. ATTR_CASE
PDO. ATTR_CLIENT_VERSION
PDO. ATTR_CONNECTION_STATUS
PDO. ATTR_DRIVER_NAME
PDO. ATTR_ERRMODE
PDO. ATTR_ORACLE_NULLS
PDO. ATTR_PERSISTENT
PDO. ATTR_PREFETCH
PDO. ATTR_SERVER_INFO
PDO. ATTR_SERVER_VERSION
PDO. ATTR_TIMEOUT
Giá trị trả về
Một cuộc gọi thành công trả về giá trị của thuộc tính PDO được yêu cầu. Khi thất bại, trả về null
Thí dụ
Ví dụ sau [cơ sở dữ liệu PostgreSQL được sử dụng] truy xuất các thuộc tính kết nối cơ sở dữ liệu
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ề
Một mảng với danh sách trình điều khiển PDO
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ề
Trả về TRUE nếu giao dịch hiện đang hoạt động và FALSE nếu không
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ề
Nếu tên dãy không được chỉ định cho tham số tên, PDO. lastInsertId[] trả về một chuỗi biểu thị ID hàng của hàng cuối cùng được chèn vào cơ sở dữ liệu
Nếu tên dãy được chỉ định cho tham số tên, PDO. lastInsertId[] trả về một chuỗi đại diện cho giá trị cuối cùng được lấy từ đối tượng trình tự đã chỉ định
Nếu trình điều khiển PDO không hỗ trợ khả năng này, PDO. lastInsertId[] kích hoạt IM001 SQLSTATE
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
tuyên bố. Một chuỗi chứa câu lệnh SQL hợp lệ
driver_options. Một mảng chứa tên và giá trị thuộc tính [key=>value pair ]
Giá trị trả về
Trả về một đối tượng PDOStatement khi thành công. Khi thất bại, trả về một đối tượng PDOException hoặc sai tùy thuộc vào giá trị của PDO. ATTR_ERRMODE
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
tuyên bố. Câu lệnh SQL để thực thi
Giá trị trả về
PDO. query[] trả về một đối tượng PDOStatement hoặc FALSE nếu không thành công
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
chuỗi - Chuỗi được trích dẫn
parameter_type - Cung cấp gợi ý kiểu dữ liệu cho trình điều khiển có kiểu trích dẫn thay thế
Giá trị trả về
Chuỗi được trích dẫn có thể được chuyển đến câu lệnh SQL hoặc sai nếu lỗi
Thí dụ
Ví dụ sau cho thấy cách trích dẫn một chuỗi bình thường
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ề
TRUE nếu cuộc gọi phương thức thành công, FALSE nếu không
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
- PDO. ATTR_CASE. Buộc tên cột vào một trường hợp cụ thể
- PDO. CASE_LOWER. Buộc tên cột thành chữ thường
- PDO. CASE_NATURAL. Để lại các tên cột như được trả về bởi trình điều khiển cơ sở dữ liệu
- PDO. CASE_UPPER. Buộc tên cột thành chữ hoa
- PDO. ATTR_ERRMODE. Báo cáo lỗi
- PDO. ERRMODE_SILENT. Chỉ cần đặt mã lỗi
- PDO. ERRMODE_WARNING. Tăng E_WARNING
- PDO. ERRMODE_EXCEPTION. Ném ngoại lệ
- PDO. ATTR_ORACLE_NULLS [có sẵn với tất cả các trình điều khiển, không chỉ Oracle]. Chuyển đổi NULL và chuỗi rỗng
- PDO. NULL_NATURAL. Không chuyển đổi
- PDO. NULL_EMPTY_STRING. Chuỗi rỗng được chuyển thành NULL
- PDO. NULL_TO_STRING. NULL được chuyển đổi thành một chuỗi rỗng
- PDO. ATTR_STRINGIFY_FETCHES. Chuyển đổi giá trị số thành chuỗi khi tìm nạp. Yêu cầu bool
- PDO. ATTR_STATEMENT_CLASS. Đặt lớp câu lệnh do người dùng cung cấp bắt nguồn từ PDOStatement. Không thể được sử dụng với các phiên bản PDO liên tục. Yêu cầu mảng [tên lớp chuỗi, mảng [hàm tạo hỗn hợp_args]]
- PDO. ATTR_TIMEOUT. Chỉ định thời gian chờ tính bằng giây. Không phải tất cả các trình điều khiển đều hỗ trợ tùy chọn này và ý nghĩa của nó có thể khác nhau giữa các trình điều khiển. Ví dụ: sqlite sẽ đợi đến giá trị thời gian này trước khi từ bỏ việc lấy khóa có thể ghi, nhưng các trình điều khiển khác có thể hiểu đây là khoảng thời gian chờ kết nối hoặc đọc
- PDO. ATTR_AUTOCOMMIT [có sẵn trong OCI, Firebird và MySQL]. Có tự động cam kết từng câu lệnh hay không
- PDO. ATTR_EMULATE_PREPARES Bật hoặc tắt mô phỏng các câu lệnh đã chuẩn bị. Một số trình điều khiển không hỗ trợ các câu lệnh được chuẩn bị sẵn hoặc có hỗ trợ hạn chế cho chúng. Sử dụng cài đặt này để buộc PDO luôn mô phỏng các câu lệnh đã chuẩn bị [nếu ĐÚNG] hoặc cố gắng sử dụng các câu lệnh đã chuẩn bị sẵn [nếu SAI]
- PDO. MYSQL_ATTR_USE_BUFFERED_QUERY [có sẵn trong MySQL]. Sử dụng truy vấn đệm
- PDO. ATTR_DEFAULT_FETCH_MODE. Đặt chế độ tìm nạp mặc định
Giá trị trả về
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Thí dụ
Ví dụ sau đây cho thấy cách một biến có thể được liên kết với một cột trong tập hợp kết quả
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau đây cho thấy cách thực thi một câu lệnh đã chuẩn bị với các trình giữ chỗ được đặt tên
Error : SQLSTATE[28000] [1045] Access denied for user 'roott'@'localhost' [using password: NO]2
Ví dụ - 2
Ví dụ sau đây cho thấy cách thực hiện một câu lệnh đã chuẩn bị với các chỗ dành sẵn cho dấu chấm hỏi
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau đây cho thấy cách thực thi một câu lệnh đã chuẩn bị với các trình giữ chỗ được đặt tên
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
Ví dụ sau đây cho thấy cách thực hiện một câu lệnh đã chuẩn bị với các chỗ dành sẵn cho dấu chấm hỏi
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau hiển thị số cột của một bảng cụ thể
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ề
Không có giá trị nào được trả về
Ví dụ 1
Đây là một ví dụ về PDOStatement. gỡ lỗiDumpParams[]
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ề
Tương tự với PDO. errorCode[], ngoại trừ PDOStatement đó. errorCode[] chỉ truy xuất mã lỗi cho các thao tác được thực hiện với các đối tượng PDOStatement
Ví dụ 1
Trong ví dụ sau, truy vấn SQL có lỗi [tên cột sai]. errorCode[] hiển thị lỗi
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ố
đị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ề
Tuyên bố PDO. errorInfo[] trả về một mảng thông tin lỗi về thao tác cuối cùng được thực hiện bởi phần xử lý câu lệnh này. Mảng bao gồm các trường sau
0 - Mã lỗi SQLSTATE
1 - Mã lỗi dành riêng cho trình điều khiển
2 - Thông báo lỗi dành riêng cho trình điều khiển
Ví dụ 1
In the following example, SQL statement has an error, which is displayed by errorinfo[]
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau đây thực thi một biến được chuẩn bị sẵn
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ề
Giá trị trả về của hàm này khi thành công phụ thuộc vào loại tìm nạp. Trong mọi trường hợp, FALSE được trả về khi thất bại
Ví dụ 1
Ví dụ sau đây cho thấy cách tìm nạp hàng bằng các kiểu tìm nạp khác nhau
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
PDO. FETCH_COLUMN. Trả về cột được lập chỉ mục 0 được chỉ định
PDO. FETCH_CLASS. Trả về các phiên bản của lớp đã chỉ định, ánh xạ các cột của mỗi hàng tới các thuộc tính được đặt tên trong lớp
PDO. FETCH_FUNC. Trả về kết quả gọi hàm đã chỉ định, sử dụng các cột của mỗi hàng làm tham số trong lệnh gọi. mixctor_argsArguments của hàm tạo lớp tùy chỉnh khi tham số fetch_style là PDO. FETCH_CLASS. int
Giá trị trả về
Một mảng các hàng còn lại trong tập kết quả hoặc sai nếu lệnh gọi phương thức không thành công
Ví dụ 1
Ví dụ sau tìm nạp tất cả các hàng còn lại trong tập hợp kết quả
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau trả về một cột trong một hàng
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ề
Khi thành công, trả về một đối tượng với một thể hiện của lớp. Trả về false khi thất bại
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ề
Trả về giá trị thuộc tính
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ề
Trả về một mảng kết hợp
Ghi chú. Chức năng này là THỬ NGHIỆM
Ví dụ 1
Ví dụ sau đây cho thấy kết quả truy xuất siêu dữ liệu
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ề
Trả về TRUE nếu thành công hoặc FALSE nếu thất bại
Ví dụ 1
Ví dụ sau đây cho thấy cách con trỏ di chuyển đến hàng tiếp theo trong câu lệnh nhiều hàng
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ề
Trả về số hàng
Ví dụ 1
Ví dụ sau đây cho thấy cách thực thi một câu lệnh đã chuẩn bị với các trình giữ chỗ được đặt tên
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