2024 年 PHP 日本會議

mysqli::init

mysqli_init

(PHP 5, PHP 7, PHP 8)

mysqli::init -- mysqli_init初始化 MySQLi 並返回一個物件以供 mysqli_real_connect() 使用

說明

物件導向風格

#[\Deprecated]
public mysqli::init(): ?bool

程序風格

mysqli_init(): mysqli|false

配置或初始化一個適用於 mysqli_options()mysqli_real_connect() 的 MYSQL 物件。

注意:

任何後續呼叫 mysqli 函式(除了 mysqli_options()mysqli_ssl_set())都會失敗,直到呼叫 mysqli_real_connect() 為止。

參數

此函式沒有參數。

傳回值

mysqli::init() 成功時傳回 null,失敗時傳回 falsemysqli_init() 成功時傳回一個物件,失敗時傳回 false

更新日誌

版本 說明
8.1.0 物件導向風格的 mysqli::init() 方法已被棄用。請將 parent::init() 的呼叫替換為 parent::__construct()

範例

請參考 mysqli_real_connect()

參見

新增筆記

使用者貢獻的筆記 2 則筆記

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 的驗證,因為這是自建憑證
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