10bet网址
MySQL PHP API
下载本手册

MySQL PHP API/.../ Mysqli::__construct, Mysqli::connect, mysqli_connect

3.8.10mysqli: __constructmysqli:连接mysqli_connect

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

  • mysqli: __construct

    mysqli:连接

    mysqli_connect

    打开一个到MySQL服务器的新连接

描述

面向对象的风格

公共mysqli: __construct字符串宿主= = ini_get(“mysqli.default_host”)
字符串用户名= = ini_get(“mysqli.default_user”)
字符串passwd= = ini_get(“mysqli.default_pw”)
字符串dbname= = "
int港口= = ini_get(“mysqli.default_port”)
字符串套接字= = ini_get(“mysqli.default_socket”));

公共无效mysqli:连接字符串宿主= = ini_get(“mysqli.default_host”)
字符串用户名= = ini_get(“mysqli.default_user”)
字符串passwd= = ini_get(“mysqli.default_pw”)
字符串dbname= = "
int港口= = ini_get(“mysqli.default_port”)
字符串套接字= = ini_get(“mysqli.default_socket”));

程序上的风格

mysqli |假mysqli_connect字符串宿主= = ini_get(“mysqli.default_host”)
字符串用户名= = ini_get(“mysqli.default_user”)
字符串passwd= = ini_get(“mysqli.default_pw”)
字符串dbname= = "
int港口= = ini_get(“mysqli.default_port”)
字符串套接字= = ini_get(“mysqli.default_socket”));

打开到MySQL服务器的连接。

参数

宿主

可以是主机名或IP地址。属性时,假定为本地主机值或字符串"localhost"赋给此参数。如果可能,将使用管道而不是TCP/IP协议。如果主机名和端口号同时提供,则使用TCP/IP协议。localhost: 3308

预挂主机由病人:打开一个持久连接。mysqli_change_user在从连接池打开的连接上自动调用。

用户名

MySQL用户名。

passwd

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

dbname

如果提供,将指定执行查询时使用的默认数据库。

港口

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

套接字

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

请注意

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

返回值

mysqli: __construct无论成功与否,总是返回一个表示连接到MySQL服务器的对象。

mysqli_connect返回一个表示连接到MySQL服务器的对象,或者在失败。

mysqli:连接返回成功与否在失败。

错误/异常

如果MYSQLI_REPORT_STRICT启用,并且尝试连接到所请求的数据库失败,则mysqli_sql_exception抛出。

例子

例3.36mysqli: __construct例子

面向对象的风格

<?你应该在尝试建立连接之前为mysqli启用错误报告*/ mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');/*建立连接后设置所需的字符集*/ $mysqli->set_charset('utf8mb4');printf("成功…% s \ n”,mysqli - > host_info);

程序上的风格

<?你应该在尝试建立连接之前为mysqli启用错误报告*/ mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');/*建立连接后设置所需的字符集*/ mysqli_set_charset($mysqli, 'utf8mb4');printf("成功…% s \ n”,mysqli_get_host_info (mysqli美元));

上面的例子将输出类似于:

成功……localhost通过TCP/IP

例3.37扩展mysqli类

<?php类FooMysqli扩展mysqli{公共函数__construct($host, $user, $pass, $db, $port, $socket, $charset) {mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);Parent::__construct($host, $user, $pass, $db, $port, $socket);美元$ this - > set_charset(字符集);}} $db = new FooMysqli('localhost', 'my_user', 'my_password', 'my_db', 3306, null, 'utf8mb4');

3.38手动错误处理

如果错误报告被禁用,开发人员将负责检查和处理失败

面向对象的风格

<?php error_reporting (0);mysqli_report (MYSQLI_REPORT_OFF);$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');if ($mysqli->connect_errno){抛出新的RuntimeException('mysqli连接错误:')。mysqli - > connect_error);} /*建立连接后设置所需的字符集*/ $mysqli->set_charset('utf8mb4');if ($mysqli->errno){抛出新的RuntimeException('mysqli error: ')。mysqli - >错误);}

程序上的风格

<?php error_reporting (0);mysqli_report (MYSQLI_REPORT_OFF);$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');if (mysqli_connect_errno()){抛出新的RuntimeException('mysqli连接错误:')。mysqli_connect_error ());} /*建立连接后设置所需的字符集*/ mysqli_set_charset($mysqli, 'utf8mb4');if (mysqli_errno($mysqli)){抛出新的RuntimeException('mysqli error: ')。mysqli_error (mysqli美元));}

笔记

请注意

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

的默认字符集my.cnf或者通过显式调用mysqli_options在打电话之前mysqli_real_connect,但之后mysqli_init

请注意

仅面向对象样式:如果连接失败,仍然返回一个对象。要检查连接是否失败,请使用mysqli_connect_error函数或mysqli - > connect_error属性。

请注意

如果需要设置连接超时等选项,mysqli_real_connect必须改为使用。

请注意

调用不带参数的构造函数与调用相同mysqli_init

请注意

错误"不能创建TCP/IP套接字(10106)"通常意味着无法创建TCP/IP套接字variables_order配置指令不包含字符E.在Windows上,如果没有复制环境SYSTEMROOT环境变量将不可用,PHP将有问题加载Winsock。

另请参阅

mysqli_real_connect
mysqli_options
mysqli_connect_errno
mysqli_connect_error
mysqli_close