首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysqli::__construct

(PHP 5, PHP 7)

mysqli :: __ construct - mysqli_connect - 打开一个到 MySQL 服务器的新连接

描述

面向对象的风格

mysqli::__construct ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") , string $socket = ini_get("mysqli.default_socket") ]]]]] )

程序风格

代码语言:javascript
复制
mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )

打开到 MySQL 服务器的连接。

参数

host

可以是主机名或 IP 地址。将NULL值或字符串 “localhost” 传递给此参数,假定为本地主机。在可能的情况下,将使用管道而不是 TCP / IP 协议。

通过p预占主机打开持久连接。在连接池打开的连接上自动调用 mysqli_change_user()。

username

MySQL 用户名。

passwd

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

dbname

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

port

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

socket

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

注意:指定socket参数不会明确确定连接到 MySQL 服务器时要使用的连接类型。如何连接到 MySQL 数据库由host参数决定。

返回值

返回一个表示到 MySQL 服务器的连接的对象。

更新日志

Version

Description

5.3.0

Added the ability of persistent connections.

例子

Example #1 mysqli::__construct() example

面向对象的风格

代码语言:javascript
复制
<?php
$mysqli?=?new?mysqli('localhost',?'my_user',?'my_password',?'my_db');

/*
?*?This?is?the?"official"?OO?way?to?do?it,
?*?BUT?$connect_error?was?broken?until?PHP?5.2.9?and?5.3.0.
?*/
if?($mysqli->connect_error)?{
????die('Connect?Error?('?.?$mysqli->connect_errno?.?')?'
????????????.?$mysqli->connect_error);
}

/*
?*?Use?this?instead?of?$connect_error?if?you?need?to?ensure
?*?compatibility?with?PHP?versions?prior?to?5.2.9?and?5.3.0.
?*/
if?(mysqli_connect_error())?{
????die('Connect?Error?('?.?mysqli_connect_errno()?.?')?'
????????????.?mysqli_connect_error());
}

echo?'Success...?'?.?$mysqli->host_info?.?"\n";

$mysqli->close();
?>

扩展 mysqli 类时面向对象的风格

代码语言:javascript
复制
<?php

class?foo_mysqli?extends?mysqli?{
????public?function?__construct($host,?$user,?$pass,?$db)?{
????????parent::__construct($host,?$user,?$pass,?$db);

????????if?(mysqli_connect_error())?{
????????????die('Connect?Error?('?.?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();
?>

程序风格

代码语言:javascript
复制
<?php
$link?=?mysqli_connect('localhost',?'my_user',?'my_password',?'my_db');

if?(!$link)?{
????die('Connect?Error?('?.?mysqli_connect_errno()?.?')?'
????????????.?mysqli_connect_error());
}

echo?'Success...?'?.?mysqli_get_host_info($link)?.?"\n";

mysqli_close($link);
?>

上面的例子会输出:

代码语言:javascript
复制
Success... MySQL host info: localhost via TCP/IP

笔记

注意:MySQLnd 始终采用服务器默认字符集。这个字符集在连接握手/认证期间发送,这是 mysqlnd 将使用的。Libmysqlclient 在调用 mysqli_real_connect()之前,但在 mysqli_init()之后,使用 my.cnf 中的默认字符集或通过显式调用 mysqli_options()。

注意:仅 OO 语法:如果连接失败,对象仍然返回。要检查连接是否失败,请使用 mysqli_connect_error()函数或 mysqli-> connect_error属性,如前面的示例中所述。

注意:如果需要设置选项,例如连接超时,则必须使用 mysqli_real_connect()。

注意:调用不带参数的构造函数与调用 mysqli_init()相同。

:错误“无法创建 TCP / IP 套接字(10106)”,通常指的variables_order配置指令不包含字符 ?。在 Windows 上,如果未复制环境,则 SYSTEMROOT 环境变量将不可用,并且 PHP 在加载 Winsock 时将遇到问题。

也可以看看

  • mysqli_real_connect() - 打开到 mysql 服务器的连接
  • mysqli_options() - 设置选项
  • mysqli_connect_errno() - 返回上次连接调用的错误代码
  • mysqli_connect_error() - 返回上次连接错误的字符串描述
  • mysqli_close() - 关闭以前打开的数据库连接

← mysqli::$connect_error

mysqli::debug →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com