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


MySQL PHP API/.../ mysqli: real_connect mysqli_real_connect

3.8.38mysqli: real_connectmysqli_real_connect

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

  • mysqli: real_connect

    mysqli_real_connect

    打开到mysql服务器的连接

描述

面向对象的风格

公共保龄球mysqli: real_connect字符串宿主
字符串用户名
字符串passwd
字符串dbname
int港口
字符串套接字
int旗帜);

程序上的风格

保龄球mysqli_real_connectmysqli链接
字符串宿主
字符串用户名
字符串passwd
字符串dbname
int港口
字符串套接字
int旗帜);

建立到MySQL数据库引擎的连接。

这个函数不同于mysqli_connect

参数

链接

返回的链接标识符mysqli_connectmysqli_init

宿主

可以是主机名或IP地址。通过值或此参数的字符串"localhost",则假定为本地主机。如果可能,将使用管道来代替TCP/IP协议。

用户名

MySQL用户名。

passwd

如果提供或, MySQL服务器将尝试根据那些没有密码的用户记录对用户进行身份验证。这允许一个用户名使用不同的权限(取决于是否提供密码)。

dbname

将指定执行查询时要使用的默认数据库。

港口

指定试图连接到MySQL服务器的端口号。

套接字

指定应该使用的套接字或命名管道。

请注意

指定套接字参数不会显式决定连接到MySQL服务器时使用的连接类型。如何连接到MySQL数据库是由宿主参数。

旗帜

与参数旗帜您可以设置不同的连接选项:

表3.11支持的标志

的名字 描述
MYSQLI_CLIENT_COMPRESS 使用压缩协议
MYSQLI_CLIENT_FOUND_ROWS 返回匹配的行数,而不是受影响的行数
MYSQLI_CLIENT_IGNORE_SPACE 允许函数名后面有空格。使所有函数名都保留字。
MYSQLI_CLIENT_INTERACTIVE 允许interactive_timeout秒(而不是wait_timeout秒)在关闭连接之前处于静止状态
MYSQLI_CLIENT_SSL 使用SSL(加密)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT 就像MYSQLI_CLIENT_SSL,但禁用对提供的SSL证书进行验证。这只适用于使用MySQL Native Driver和MySQL 5.6或更高版本的安装。

请注意

出于安全考虑,MULTI_STATEMENTflag在PHP中不支持。如果您想执行多个查询,请使用mysqli_multi_query函数。

返回值

返回真正的在成功或在失败。

例子

例3.60mysqli: real_connect例子

面向对象的风格

<?PHP $mysqli = mysqli_init();If (!$mysqli) {die('mysqli_init失败');如果(}!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0') {die('设置MYSQLI_INIT_COMMAND失败');如果(}!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5) {die('设置MYSQLI_OPT_CONNECT_TIMEOUT失败');如果(}!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db') {die('连接错误(')。mysqli_connect_errno()。 ') ' . mysqli_connect_error()); } echo 'Success... ' . $mysqli->host_info . "\n"; $mysqli->close(); ?>

扩展mysqli类时使用面向对象的样式

<?PHP类foo_mysqli扩展了mysqli{公共函数__construct($host, $user, $pass, $db) {parent::init();如果(!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {die('设置MYSQLI_INIT_COMMAND失败');如果(}!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {die('设置MYSQLI_OPT_CONNECT_TIMEOUT失败');如果(}!parent::real_connect($host, $user, $pass, $db)) {die('连接错误(')。mysqli_connect_errno()。”) ' . mysqli_connect_error()); } } } $db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db'); echo 'Success... ' . $db->host_info . "\n"; $db->close(); ?>

程序上的风格

<?PHP $link = mysqli_init();If (!$link) {die('mysqli_init失败');如果(}!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) { die('Setting MYSQLI_INIT_COMMAND failed'); } if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); } if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } echo 'Success... ' . mysqli_get_host_info($link) . "\n"; mysqli_close($link); ?>

上面的例子将输出:

成功……MySQL主机信息:本地主机通过TCP/IP

笔记

请注意

MySQLnd总是假定服务器默认字符集。这个字符集在连接握手/身份验证期间发送,mysqlnd将使用这个字符集。

Libmysqlclient使用my.cnf或者通过显式调用mysqli_options之前调用mysqli_real_connect,但在mysqli_init

另请参阅

mysqli_connect
mysqli_init
mysqli_options
mysqli_ssl_set
mysqli_close