10bet网址
MySQL PHP API
本手册下载
PDF (Ltr)- 2.4 mb
PDF (A4)- 2.4 mb


5.4.2getSession

版权1997 - 2021 PHP文档组。10bet官方网站

  • getSession

    连接到一个MySQL服务器

描述

mysql_xdevapi \会话mysql_xdevapi \ getSession(字符串uri);

连接到MySQL服务器。

参数

uri

MySQL服务器URI,比如mysqlx: / /用户:password@host

URI格式:

方案:/ /用户[:[密码]][@]目标[:端口][? attribute1 = value1&attribute2 = value2…

  • 计划:要求,连接协议

    在mysql_xdevapi总是“mysqlx”(X协议)

  • 用户:可选的,MySQL用户帐户进行身份验证

  • 密码:可选的,MySQL用户的密码进行身份验证

  • 目标:要求,服务器实例连接指的是:

    * TCP连接(主机名、IPv4地址或IPv6地址)

    * Unix socket路径(本地文件路径)

    *窗口命名管道(本地文件路径)

  • 港口:可选的,MySQL服务器的网络端口。

    通过X协议的默认端口是33060

  • ?属性=值:这个元素是可选的,指定一个包含不同的数据字典选项,包括:

    • 身份验证(身份验证机制)属性,因为它涉及到加密连接。有关更多信息,请参见加密连接的命令选项。支持以下身份验证的值:平原,mysql41,外部,sha256_mem

    • connect-timeout属性影响的连接,而不是后续操作。设置每个连接是否在一个或多个主机。

      通过一个正整数定义的连接超时秒数,或通过0(零)禁用超时(无限)。没有定义connect-timeout使用默认值为10。

      相关,MYSQLX_CONNECTION_TIMEOUT(超时秒)和MYSQLX_TEST_CONNECTION_TIMEOUT(在运行测试时使用)可以设置环境变量,用来代替connect-timeout URI。connect-timeout URI选项优先于这些环境变量。

    • 可选压缩属性接受这些值:首选(客户端与服务器协商找到一个支持算法;连接未压缩的如果没有找到一个相互支持的算法),要求(如“首选”,但连接终止如果没有找到一个相互支持的算法),或禁用(未压缩的连接)。默认为首选

      这个选项是在版本8.0.20补充道。

    • 可选压缩算法属性定义所需的压缩算法(和他们的首选使用顺序):zstd_stream(别名:zstd),lz4_message(别名:lz4),或deflate_stream(别名:缩小或zlib)。默认情况下,使用的顺序(取决于系统可用性)是lz4_message, zstd_stream,然后deflate_stream。例如,通过压缩算法= [lz4 zstd_stream]使用lz4如果是可用的,否则zstd_stream使用。如果两者都不可用,那么行为取决于压缩值例如,如果压缩=需要然后用一个错误就会失败。

      这个选项是在版本8.0.22补充道。

示例5.6 URI的例子

mysqlx: / / foobar mysqlx: / / root@localhost ?插座= % 2 ftmp % 2 fmysqld。袜子% 2 f mysqlx: / / foo: bar@localhost: 33060 mysqlx: / / foo: bar@localhost: 33160 ?ssl-mode =禁用mysqlx: / / foo: bar@localhost: 33260 ?ssl-mode =需要mysqlx: / / foo: bar@localhost: 33360 ?ssl-mode = required&auth = mysql41 mysqlx: / / foo: bar@(/路径/ /插座)mysqlx: / / foo: bar@(/道路/ /套接字)?身份验证=sha256_mem mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061] mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem) mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled mysqlx://foo:bar@localhost:33160/?connect-timeout=0 mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

相关信息,请参阅MySQL壳牌使用URI字符串连接

返回值

一个会话对象。

错误/异常

抛出一个连接失败异常

例子

例5.7mysql_xdevapi \ getSession例子

< ?php尝试{$ session = mysql_xdevapi \ getSession (“mysqlx: / /用户:password@host”);}捕捉(异常$ e){死亡(“不能建立连接:”。$ e - > getMessage ());}$ = $会话模式- > getSchemas ();print_r(模式);$ mysql_version = $ session - > getServerVersion ();print_r ($ mysql_version);var_dump()美元收集- >找到(" name =阿尔弗雷德”)- > execute () - > fetchOne ());? >

上面的示例输出类似于:

阵列([0]= > mysql_xdevapi \ Schema对象([名字]= > helloworld) [1] = > mysql_xdevapi \ Schema对象([名字]= > information_schema) [2] = > mysql_xdevapi \ Schema对象([名字]= > mysql) [3] = > mysql_xdevapi \ Schema对象([名字]= > performance_schema) [4] = > mysql_xdevapi \ Schema对象([名字]= > sys)) 80012阵列(4){[“_id”] = >字符串(28)“00005 ad66abf0001000400000003”(“年龄”)= > int(42)(“工作”)= >字符串(7)“管家”(“名字”)= >字符串(4)“阿尔弗雷德”}