Phần mở rộng PHP Data Objects (PDO) xác định giao diện nhẹ, nhất quán để truy cập cơ sở dữ liệu trong PHP. Mỗi trình điều khiển cơ sở dữ liệu thực hiện giao diện PDO có thể hiển thị các tính năng dành riêng cho cơ sở dữ liệu dưới dạng các chức năng mở rộng thông thường. Lưu ý rằng bạn không thể thực hiện bất kỳ chức năng cơ sở dữ liệu nào bằng cách sử dụng tiện ích mở rộng PDO; Bạn phải sử dụng trình điều khiển PDO dành riêng cho cơ sở dữ liệu để truy cập máy chủ cơ sở dữ liệu.
PDO cung cấp một lớp trừu tượng truy cập dữ liệu, có nghĩa là, bất kể cơ sở dữ liệu nào bạn đang sử dụng, bạn sử dụng cùng một chức năng để phát hành truy vấn và tìm nạp dữ liệu. PDO không cung cấp một bản tóm tắt cơ sở dữ liệu; Nó không viết lại SQL hoặc mô phỏng các tính năng bị thiếu. Bạn nên sử dụng một lớp trừu tượng toàn diện nếu bạn cần cơ sở đó.
Tàu PDO với PHP.
Không có người dùng đóng góp ghi chú cho trang này.
PDO trong PHP với ví dụ là gì?
PDO đề cập đến đối tượng dữ liệu PHP, là tiện ích mở rộng PHP xác định giao diện nhẹ và nhất quán để truy cập cơ sở dữ liệu trong PHP. Đây là một tập hợp các tiện ích mở rộng PHP cung cấp trình điều khiển dành riêng cho lớp PDO và cơ sở dữ liệu cốt lõi.
Mục đích của PDO là gì?
PDO cung cấp một lớp trừu tượng truy cập dữ liệu, có nghĩa là, bất kể cơ sở dữ liệu nào bạn đang sử dụng, bạn sử dụng cùng một chức năng để phát hành truy vấn và tìm nạp dữ liệu. PDO không cung cấp một bản tóm tắt cơ sở dữ liệu; Nó không viết lại SQL hoặc mô phỏng các tính năng bị thiếu.
PDO hoạt động như thế nào trong PHP?
Các đối tượng dữ liệu PDO PDO Php là lớp truy cập cơ sở dữ liệu cung cấp một phương thức truy cập thống nhất vào nhiều cơ sở dữ liệu. Nó không tính đến cú pháp cụ thể của cơ sở dữ liệu, nhưng có thể cho phép quá trình chuyển đổi cơ sở dữ liệu và nền tảng khá không đau, chỉ bằng cách chuyển đổi chuỗi kết nối trong nhiều trường hợp.
PDO trong mysqli là gì?
PDO (Đối tượng dữ liệu PHP) Các phiên bản trước của PHP đã sử dụng tiện ích mở rộng MySQL. Tuy nhiên, phần mở rộng này đã bị phản đối trong năm 2012.
Chức năng MySQL (PDO_MYSQL)
Ghi chú::
Trình điều khiển MySQL không hỗ trợ đúng cách PDO::PARAM_INPUT_OUTPUT thông qua pdostatement :: bindparam (); Mặc dù các tham số như vậy có thể được sử dụng, chúng không được cập nhật (nghĩa là đầu ra thực tế bị bỏ qua).PDO::PARAM_INPUT_OUTPUT via PDOStatement::bindParam(); while such parameters can be used, they are not updated (i.e. the actual output is ignored).
Cài đặt
Các phân phối Unix phổ biến bao gồm các phiên bản nhị phân của PHP có thể được cài đặt. Mặc dù các phiên bản nhị phân này thường được xây dựng với sự hỗ trợ cho các phần mở rộng MYSQL, bản thân các thư viện mở rộng có thể cần được cài đặt bằng một gói bổ sung. Kiểm tra trình quản lý gói đi kèm với phân phối đã chọn của bạn để có sẵn.
Ví dụ: trên Ubuntu, gói php5-mysql cài đặt các phần mở rộng EXT/MySQL, EXT/MySQLI và PDO_MYSQL PHP. Trên Centos, gói php-mysql cũng cài đặt ba phần mở rộng PHP này.
Ngoài ra, bạn có thể tự biên dịch phần mở rộng này. Xây dựng PHP từ nguồn cho phép bạn chỉ định các tiện ích mở rộng MySQL bạn muốn sử dụng, cũng như sự lựa chọn của bạn về thư viện máy khách cho mỗi tiện ích mở rộng.
Khi biên dịch, sử dụng--with-pdo-mysql [= dir] để cài đặt tiện ích mở rộng PDO MySQL, trong đó [=DIR] tùy chọn là thư viện cơ sở MySQL. MySQLND là thư viện mặc định. Để biết chi tiết về việc chọn thư viện, hãy xem chọn thư viện MySQL.--with-pdo-mysql[=DIR] to install the PDO MySQL extension, where the optional [=DIR] is the MySQL base library. Mysqlnd is the default library. For details about choosing a library, see Choosing a MySQL library.
Tùy chọn,--with-mysql-sock [= dir] đặt đến vị trí đến con trỏ ổ cắm unix mysql cho tất cả các tiện ích mở rộng MySQL, bao gồm PDO_MYSQL. Nếu không xác định, các vị trí mặc định được tìm kiếm.--with-mysql-sock[=DIR] sets to location to the MySQL unix socket pointer for all MySQL extensions, including PDO_MYSQL. If unspecified, the default locations are searched.
Tùy chọn,--with-zlib-dir [= dir] được sử dụng để đặt đường dẫn đến tiền tố cài đặt libz.--with-zlib-dir[=DIR] is used to set the path to the libz install prefix.
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
Hỗ trợ SSL được bật bằng cách sử dụng các hằng số pdo_mysql thích hợp, tương đương với việc gọi »& nbsp; mysql c chức năng API mySQL_SSL_SET (). Ngoài ra, SSL không thể được bật bằng PDO :: SetAttribution vì kết nối đã tồn tại. Xem thêm Tài liệu MySQL về »& nbsp; kết nối với MySQL với SSL.PDO::setAttribute because the connection already exists. See also the MySQL documentation about » connecting to MySQL with SSL.
Hằng số được xác định trước
Các hằng số bên dưới được xác định bởi trình điều khiển này và sẽ chỉ có sẵn khi phần mở rộng đã được biên dịch thành PHP hoặc được tải động trong thời gian chạy. Ngoài ra, các hằng số dành riêng cho trình điều khiển này chỉ nên được sử dụng nếu bạn đang sử dụng trình điều khiển này. Sử dụng các thuộc tính dành riêng cho trình điều khiển với một trình điều khiển khác có thể dẫn đến hành vi bất ngờ. PDO :: GetAttribution () có thể được sử dụng để có được thuộc tính PDO::ATTR_DRIVER_NAME để kiểm tra trình điều khiển, nếu mã của bạn có thể chạy đối với nhiều trình điều khiển.PDO::getAttribute() may be used to obtain the PDO::ATTR_DRIVER_NAME attribute to check the driver, if your code can run against multiple drivers.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (int) Nếu thuộc tính này được đặt thành true trên pdostatement, trình điều khiển MySQL sẽ sử dụng các phiên bản đệm của API MySQL. Nếu bạn đang viết mã di động, bạn nên sử dụng pdostatement :: fetchall () thay vào đó. (int) If this attribute is set to true on a PDOStatement, the MySQL driver will use the buffered versions of the MySQL API. If you're writing portable code, you should use PDOStatement::fetchAll() instead.Ví dụ #1 buộc các truy vấn phải được đệm trong MySQL
PHP Data Objects0
PHP Data Objects1 (int) (int)Bật PHP Data Objects2.
Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng PHP Data Objects3 khi xây dựng một tay cầm cơ sở dữ liệu mới.
PHP Data Objects4 (chuỗi) (string)Cho phép hạn chế tải dữ liệu cục bộ vào các tệp nằm trong thư mục được chỉ định này. Có sẵn là Php 8.1.0.
Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng PHP Data Objects3 khi xây dựng một tay cầm cơ sở dữ liệu mới.
PHP Data Objects4 (chuỗi) (string)Cho phép hạn chế tải dữ liệu cục bộ vào các tệp nằm trong thư mục được chỉ định này. Có sẵn là Php 8.1.0.
Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng PHP Data Objects3 khi xây dựng một tay cầm cơ sở dữ liệu mới.
PHP Data Objects4 (chuỗi) (int)Cho phép hạn chế tải dữ liệu cục bộ vào các tệp nằm trong thư mục được chỉ định này. Có sẵn là Php 8.1.0.
PHP Data Objects6 (chuỗi) (int)Lệnh để thực thi khi kết nối với máy chủ MySQL. Sẽ tự động được thực hiện lại khi kết nối lại.default_authentication_plugin=mysql_native_password0. This option is not available if mysqlnd is used, because mysqlnd does not read the mysql configuration files.
PHP Data Objects8 (int) (int)Đọc các tùy chọn từ tệp tùy chọn được đặt tên thay vì từ My.cnf. Tùy chọn này không khả dụng nếu MySQLND được sử dụng, vì MySQLND không đọc các tệp cấu hình MySQL.
PHP Data Objects9 (int) (int)Đọc các tùy chọn từ nhóm được đặt tên từ My.cnf hoặc tệp được chỉ định với default_authentication_plugin=mysql_native_password0. Tùy chọn này không khả dụng nếu MySQLND được sử dụng, vì MySQLND không đọc các tệp cấu hình MySQL.
default_authentication_plugin=mysql_native_password1 (int) (int)Kích thước bộ đệm tối đa. Mặc định là 1 MIB. Hằng số này không được hỗ trợ khi được tổng hợp với MySQLND.
default_authentication_plugin=mysql_native_password2 (int) (int)Thực hiện các truy vấn trực tiếp, không sử dụng các câu lệnh đã chuẩn bị.
default_authentication_plugin=mysql_native_password3 (int) (int)Trả về số lượng hàng được tìm thấy (phù hợp), không phải số lượng hàng đã thay đổi.
default_authentication_plugin=mysql_native_password4 (int) (int)Cho phép không gian sau tên chức năng. Làm cho tất cả các chức năng Tên từ dành riêng.
default_authentication_plugin=mysql_native_password5 (int) (int)Bật nén giao tiếp mạng.
default_authentication_plugin=mysql_native_password6 (int) (int)Đường dẫn tệp đến Cơ quan chứng chỉ SSL.
default_authentication_plugin=mysql_native_password7 (int) (int)Đường dẫn tệp đến thư mục chứa chứng chỉ SSL CA đáng tin cậy, được lưu trữ ở định dạng PEM.
default_authentication_plugin=mysql_native_password8 (int) (int)Đường dẫn tệp đến chứng chỉ SSL.
default_authentication_plugin=mysql_native_password9 (int) (int)Danh sách một hoặc nhiều mật mã được phép sử dụng để mã hóa SSL, theo định dạng được OpenSSL hiểu. Ví dụ: PDO::PARAM_INPUT_OUTPUT0
Điều này tồn tại kể từ Php 7.0,18 và PhP 7.1.4.
PDO::PARAM_INPUT_OUTPUT3 (int) (int)Vô hiệu hóa thực thi nhiều truy vấn trong cả PDO :: PREPARE () và PDO :: Truy vấn () khi được đặt thành PDO::PARAM_INPUT_OUTPUT4.PDO::prepare() and PDO::query() when set to PDO::PARAM_INPUT_OUTPUT4.
Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng PHP Data Objects3 khi xây dựng một tay cầm cơ sở dữ liệu mới.
Cấu hình thời gian chạy
Hành vi của các chức năng này bị ảnh hưởng bởi các cài đặt trong php.ini.
Tùy chọn cấu hình PDO_MYSQLpdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_ini_System |
pdo_mysql.debug | VÔ GIÁ TRỊ | PHP_ini_System |
pdo_mysql.debug
VÔ GIÁ TRỊ
Để biết thêm chi tiết và định nghĩa của các chế độ PHP_INI_*, hãy xem nơi cài đặt cấu hình có thể được đặt.stringĐây là một lời giải thích ngắn về các chỉ thị cấu hình.
PDO::PARAM_INPUT_OUTPUT6 ChuỗiboolĐặt ổ cắm miền UNIX. Giá trị này có thể được đặt tại thời điểm biên dịch nếu tìm thấy ổ cắm miền ở cấu hình. Cài đặt INI này chỉ là Unix.
PDO::PARAM_INPUT_OUTPUT7 BOOL
- Cho phép gỡ lỗi cho PDO_MYSQL. Cài đặt này chỉ khả dụng khi PDO_MYSQL được biên dịch với MYSQLND và trong chế độ gỡ lỗi PDO.
Mục lục ¶
PDO_MYSQL DSN - Kết nối với cơ sở dữ liệu MySQL
PDO::PARAM_INPUT_OUTPUT8
PDO::PARAM_INPUT_OUTPUT9
php5-mysql0
php5-mysql1Brian tại Diamondsea Dot Com ¶ ¶
14 năm trước
php5-mysql2
php5-mysql3
php5-mysql1Davey tại php dot net ¶ ¶
15 năm trước
php5-mysql5
php5-mysql6
php5-mysql1Curt tại webmasterbond dot com ¶
PDO_MYSQL DSN - Kết nối với cơ sở dữ liệu MySQL
php5-mysql8
php5-mysql9
php-mysql0
php-mysql1
php-mysql2
php-mysql3
php-mysql4
php-mysql5
php-mysql6
php5-mysql1Brian tại Diamondsea Dot Com ¶ ¶
PDO_MYSQL DSN - Kết nối với cơ sở dữ liệu MySQL
php-mysql8
php-mysql9
[=DIR]0
[=DIR]1
[=DIR]2
[=DIR]3
[=DIR]4
php5-mysql1Brian tại Diamondsea Dot Com ¶ ¶
14 năm trước
[=DIR]6
[=DIR]7
[=DIR]8
[=DIR]9
PDO::ATTR_DRIVER_NAME0
PDO::ATTR_DRIVER_NAME1
PDO::ATTR_DRIVER_NAME2
PDO::ATTR_DRIVER_NAME3
PDO::ATTR_DRIVER_NAME4
php5-mysql1Davey tại php dot net ¶ ¶
15 năm trước
PDO::ATTR_DRIVER_NAME6