mysqli::init

mysqli_init

(PHP 5, PHP 7, PHP 8)

mysqli::init -- mysqli_init初始化 MySQLi 并返回一个可用于 mysqli_real_connect() 的对象

描述

面向对象风格

public mysqli::init(): ?bool

过程式风格

mysqli_init(): mysqli|false

分配或初始化一个适合于 mysqli_options()mysqli_real_connect() 的 MYSQL 对象。

注意:

在调用 mysqli_real_connect() 之前,任何对 mysqli 函数的后续调用(除了 mysqli_options()mysqli_ssl_set())都会失败。

参数

此函数没有参数。

返回值

mysqli::init() 成功时返回 null,失败时返回 falsemysqli_init() 成功时返回一个对象,失败时返回 false

变更日志

版本 描述
8.1.0 面向对象风格的 mysqli::init() 方法已被弃用。将对 parent::init() 的调用替换为 parent::__construct()

示例

参见 mysqli_real_connect()

参见

添加注释

用户贡献的注释 2 个注释

1
Kam.Dab
1 年前
我编写了支持 ssl 的 mysqli,您不再需要更改 mysqli 连接以交换到您自己的 mysqli。覆盖支持 ssl 的 __construct mysqli 可以像这样
<?php class myssl_mysqli extends \mysqli {
public function
__construct($db_host, $db_user, $db_pass, $db_name, $port, $persistent = true, $ssl = false, $certpublic = "") {
if(
$ssl) {
parent::init();
parent::options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false);
parent::ssl_set(NULL, NULL, $certpublic, NULL, NULL);
parent::real_connect(($persistent ? 'p:' : '') . $db_host, $db_user, $db_pass, $db_name, $port, '', MYSQLI_CLIENT_SSL | MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT );
} else {
parent::__construct($db_host, $db_user, $db_pass, $db_name, $port);
}
}
$db = new myssl_mysqli('localhost','user', 'pass','db', '3306', true, true, '/home/mypublicowncert.pem');
?>
在这个例子中,我关闭了由 ssl 颁发机构验证的证书,因为它是自己创建的证书
-3
evgen at sysmasters dot net
2 年前
连接数据库的正确方法

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("127.0.0.1", "db_user", "db_pass", "db_name",3306);

$result = $mysqli->query("SELECT somefield1, somefield2 FROM sometable ORDER BY ID LIMIT 3");

/* 一旦连接不再需要就关闭它 */
$mysqli->close();

foreach (
$result as $row) {
/* 处理从数据库接收的数据 */
echo var_dump ($row);
}
To Top