Hướng dẫn install pdo-mysql - cài đặt pdo-mysql

Chức năng MySQL (PDO_MYSQL)

Giới thiệu

PDO_MYSQL là một trình điều khiển thực hiện giao diện đối tượng dữ liệu PHP (PDO) để cho phép truy cập từ cơ sở dữ liệu PHP sang MySQL.

PDO_MYSQL sử dụng các chuẩn bị được mô phỏng theo mặc định.

MySQL 8

Khi chạy phiên bản PHP trước 7.1.16 hoặc PHP 7.2 trước 7.2.4, hãy đặt plugin mật khẩu mặc định của máy chủ MySQL 8 thành mysql_native_password nếu không bạn sẽ thấy các lỗi tương tự như phương thức xác thực được yêu cầu Không được sử dụng.

Điều này là do MySQL 8 mặc định là bộ nhớ cache_sha2_password, một plugin không được nhận ra bởi các bản phát hành PHP (MySQLND) cũ hơn. Thay vào đó, hãy thay đổi nó bằng cách đặt default_authentication_plugin=mysql_native_password trong My.cnf. Plugin bộ nhớ cache_sha2_password sẽ được hỗ trợ trong bản phát hành PHP trong tương lai. Trong khi đó, tiện ích mở rộng mysql_xdevapi không hỗ trợ nó.

Cảnh báo

Cẩn thận: Một số loại bảng MySQL (công cụ lưu trữ) không hỗ trợ các giao dịch. Khi viết mã cơ sở dữ liệu giao dịch bằng cách sử dụng loại bảng không hỗ trợ giao dịch, MySQL sẽ giả vờ rằng một giao dịch đã được bắt đầu thành công. Ngoài ra, bất kỳ truy vấn DDL nào được phát hành sẽ hoàn toàn cam kết bất kỳ giao dịch đang chờ xử lý nào.

Ghi chú::

Trình điều khiển MySQL không hỗ trợ đúng 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

if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    
$stmt $db->prepare('select * from foo',
        array(
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die(
"my application only works with mysql; I should use \$stmt->fetchAll() instead");
}
?>

default_authentication_plugin=mysql_native_password0 (int) (int)

Bật default_authentication_plugin=mysql_native_password1.

Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng default_authentication_plugin=mysql_native_password2 khi xây dựng một tay cầm cơ sở dữ liệu mới.

default_authentication_plugin=mysql_native_password3 (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 default_authentication_plugin=mysql_native_password2 khi xây dựng một tay cầm cơ sở dữ liệu mới.

default_authentication_plugin=mysql_native_password3 (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 default_authentication_plugin=mysql_native_password2 khi xây dựng một tay cầm cơ sở dữ liệu mới.

default_authentication_plugin=mysql_native_password3 (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.

default_authentication_plugin=mysql_native_password8 (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_password9. 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_password9. This option is not available if mysqlnd is used, because mysqlnd does not read the mysql configuration files.

PDO::PARAM_INPUT_OUTPUT0 (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.

PDO::PARAM_INPUT_OUTPUT1 (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ị.

PDO::PARAM_INPUT_OUTPUT2 (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.

PDO::PARAM_INPUT_OUTPUT3 (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.

PDO::PARAM_INPUT_OUTPUT4 (int) (int)

Bật nén giao tiếp mạng.

PDO::PARAM_INPUT_OUTPUT5 (int) (int)

Đường dẫn tệp đến Cơ quan chứng chỉ SSL.

PDO::PARAM_INPUT_OUTPUT6 (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.

PDO::PARAM_INPUT_OUTPUT7 (int) (int)

Đường dẫn tệp đến chứng chỉ SSL.

PDO::PARAM_INPUT_OUTPUT8 (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_OUTPUT9

php5-mysql0 (int) (int)

Đường dẫn tệp đến khóa SSL.

php5-mysql1 (int) (int)

Cung cấp một cách để vô hiệu hóa xác minh chứng chỉ SSL của máy chủ.

Điều này tồn tại kể từ Php 7.0,18 và PhP 7.1.4.

php5-mysql2 (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 php5-mysql3.PDO::prepare() and PDO::query() when set to php5-mysql3.

Lưu ý, hằng số này chỉ có thể được sử dụng trong mảng default_authentication_plugin=mysql_native_password2 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_MYSQL
TênMặc địnhCó thể thay đổi
pdo_mysql.default_socket"/tmp/mysql.sock"PHP_ini_System
pdo_mysql.debugVÔ 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.

Chuỗi php5-mysql5bool

Đặ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.

php5-mysql6 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

php5-mysql7

php5-mysql8

php5-mysql9

php-mysql0

Brian tại Diamondsea Dot Com ¶

14 năm trước

php-mysql1

php-mysql2

php-mysql0

Davey tại php dot net ¶

15 năm trước

php-mysql4

php-mysql5

php-mysql0

Curt tại webmasterbond dot com

PDO_MYSQL DSN - Kết nối với cơ sở dữ liệu MySQL

php-mysql7

php-mysql8

php-mysql9

[=DIR]0

[=DIR]1

[=DIR]2

[=DIR]3

[=DIR]4

[=DIR]5

php-mysql0

Brian tại Diamondsea Dot Com ¶

PDO_MYSQL DSN - Kết nối với cơ sở dữ liệu MySQL

[=DIR]7

[=DIR]8

[=DIR]9

PDO::ATTR_DRIVER_NAME0

PDO::ATTR_DRIVER_NAME1

PDO::ATTR_DRIVER_NAME2

PDO::ATTR_DRIVER_NAME3

php-mysql0

Brian tại Diamondsea Dot Com ¶

14 năm trước

PDO::ATTR_DRIVER_NAME5

PDO::ATTR_DRIVER_NAME6

PDO::ATTR_DRIVER_NAME7

PDO::ATTR_DRIVER_NAME8

PDO::ATTR_DRIVER_NAME9

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY0

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY1

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY2

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY3

php-mysql0

Davey tại php dot net ¶

15 năm trước

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY5