10bet网址
连接器和api手册
本手册下载

连接器和api手册/MySQL和PHP/ MySQL函数(PDO_MYSQL)

7.4 MySQL函数(PDO_MYSQL)

PHP文档组版权所有。10bet官方网站

PDO_MYSQL是一个实现PHP数据对象(PDO)接口允许从PHP访问MySQL数据库。

PDO_MYSQL默认使用模拟准备。

MySQL 8

当运行7.1.16之前的PHP版本或7.2.4之前的PHP 7.2时,将MySQL 8服务器的默认密码插件设置为mysql_native_password否则您将看到类似于服务器请求的身份验证方法对客户端来说是未知的。即使caching_sha2_password是不习惯。

这是因为MySQL 8默认为caching_sha2_password,一个不被旧的PHP (mysqlnd)版本识别的插件。相反,可以通过设置来更改它default_authentication_plugin = mysql_native_passwordmy.cnf.的caching_sha2_password插件将在未来的PHP版本中得到支持。与此同时,mysql_xdevapi扩展支持它。

警告

注意:一些MySQL表类型(存储引擎)不支持事务。当使用不支持事务的表类型编写事务数据库代码时,MySQL将假装事务已成功启动。此外,发出的任何DDL查询都将隐式提交任何挂起的事务。

常见的Unix发行版包括可以安装的PHP二进制版本。尽管这些二进制版本通常是在支持MySQL扩展的情况下构建的,但是扩展库本身可能需要使用额外的包进行安装。检查所选发行版附带的包管理器的可用性。

例如,在Ubuntu上php5-mysql包安装了ext/mysql, ext/mysqli和PDO_MYSQL PHP扩展。在CentOS,php mysql包还安装这三个PHP扩展。

或者,您可以自己编译这个扩展。从源代码构建PHP允许您指定想要使用的MySQL扩展,以及为每个扩展选择的客户端库。

当编译时,使用——with-pdo-mysql (= DIR)安装PDO MySQL扩展,其中可选的(= DIR)是MySQL的基础库。从PHP 5.4开始,mysqlnd是默认库。有关选择库的详细信息,请参见选择MySQL库

可选地,——with-mysql-sock (= DIR)将location设置为所有MySQL扩展的MySQL unix套接字指针,包括PDO_MYSQL。如果未指定,则搜索默认位置。

可选地,——with-zlib-dir (= DIR)用于设置libz安装前缀的路径。

$ ./configure——with-pdo-mysql——with-mysql-sock=/var/mysql/mysql.sock

SSL支持使用适当的PDO_MySQL常量,相当于调用MySQL C API函数mysql_ssl_set().此外,SSL不能被启用PDO: setAttribute因为连接已经存在。参见MySQL文档10bet官方网站使用SSL连接MySQL

下面的常量是由这个驱动程序定义的,只有当扩展被编译成PHP或在运行时动态加载时才可用。此外,只有在使用此驱动程序时才应该使用这些驱动程序特定的常量。在另一个驱动程序中使用特定于驱动程序的属性可能会导致意想不到的行为。PDO: getAttribute可用于获取PDO: ATTR_DRIVER_NAME属性来检查驱动程序,如果您的代码可以在多个驱动程序上运行。

PDO: MYSQL_ATTR_USE_BUFFERED_QUERYint

如果将此属性设置为真正的在一个PDOStatement, MySQL驱动程序将使用MySQL API的缓冲版本。如果您正在编写可移植代码,您应该使用PDOStatement:: fetchAll代替。

例7.136在mysql中强制缓冲查询

<?php if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {$stmt = $db->prepare('select * from foo',数组(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));} else {die("我的应用程序只与mysql工作;我应该使用\$stmt->fetchAll()代替");} ? >


PDO: MYSQL_ATTR_LOCAL_INFILEint

启用加载本地INFILE

注意,此常量只能在driver_options数组在构造新的数据库句柄时。

PDO: MYSQL_ATTR_LOCAL_INFILE_DIRECTORY字符串

允许将本地数据加载限制为位于此指定目录中的文件。

注意,此常量只能在driver_options数组在构造新的数据库句柄时。

PDO: MYSQL_ATTR_INIT_COMMANDint

连接MySQL服务器时执行的命令。将在重新连接时自动重新执行。

注意,此常量只能在driver_options数组在构造新的数据库句柄时。

PDO: MYSQL_ATTR_READ_DEFAULT_FILEint

从已命名的选项文件中读取选项,而不是从my.cnf.如果使用mysqlnd,则此选项不可用,因为mysqlnd不读取mysql配置文件。

PDO: MYSQL_ATTR_READ_DEFAULT_GROUPint

从指定的组中读取选项my.cnf或指定的文件MYSQL_READ_DEFAULT_FILE.如果使用mysqlnd,则此选项不可用,因为mysqlnd不读取mysql配置文件。

PDO: MYSQL_ATTR_MAX_BUFFER_SIZEint

最大缓冲区大小。缺省值:1mib。当根据mysqlnd编译时,不支持此常量。

PDO: MYSQL_ATTR_DIRECT_QUERYint

执行直接查询,不要使用准备语句。

PDO: MYSQL_ATTR_FOUND_ROWSint

返回已找到(匹配)的行数,而不是已更改的行数。

PDO: MYSQL_ATTR_IGNORE_SPACEint

允许函数名后面有空格。使所有函数名都保留字。

PDO: MYSQL_ATTR_COMPRESSint

启用网络通信压缩。

PDO: MYSQL_ATTR_SSL_CAint

SSL证书颁发机构的文件路径。

PDO: MYSQL_ATTR_SSL_CAPATHint

包含受信任的SSL CA证书的目录的文件路径,证书以PEM格式存储。

PDO: MYSQL_ATTR_SSL_CERTint

SSL证书的文件路径。

PDO: MYSQL_ATTR_SSL_CIPHERint

用于SSL加密的一个或多个允许的密码的列表,格式为OpenSSL所理解。例如:DHE-RSA-AES256-SHA: AES128-SHA

PDO: MYSQL_ATTR_SSL_KEYint

SSL密钥的文件路径。

PDO: MYSQL_ATTR_SSL_VERIFY_SERVER_CERTint

提供禁用对服务器SSL证书的验证的方法。

这在PHP 7.0.18和PHP 7.1.4中已经存在。

PDO: MYSQL_ATTR_MULTI_STATEMENTSint

在两者中禁用多查询执行PDO:准备而且PDO:查询当设置为

注意,此常量只能在driver_options数组在构造新的数据库句柄时。

中的设置会影响这些函数的行为php . ini

表7.20 PDO_MYSQL配置选项

的名字 默认的 多变的
pdo_mysql.default_socket “/ tmp / mysql.sock” PHP_INI_SYSTEM
pdo_mysql.debug PHP_INI_SYSTEM


有关PHP_INI_*模式的更多详细信息和定义,请参见http://www.php.net/manual/en/configuration.changes.modes

下面是配置指令的简短解释。

pdo_mysql.default_socket字符串

设置Unix域套接字。如果在configure中找到了域套接字,则可以在编译时设置此值。此ini设置仅适用于Unix。

pdo_mysql.debug保龄球

打开PDO_MYSQL的调试。此设置仅在PDO_MYSQL根据mysqlnd编译并处于PDO调试模式时可用。