mysqli::connect 和 new mysqli 有什么区别?

What is the difference between mysqli::connect and new mysqli?

Mysqli 库提供了许多用于建立与 MySQL 服务器的连接的替代语法。

#1

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

#2

$mysqli = new mysqli();
$mysqli->connect('localhost', 'my_user', 'my_password', 'my_db');

我问的不是 procedural vs OOP style nor am I asking about mysqli_connect() vs mysqli_real_connect()

mysqli:connect()方法的目的是什么,使用第一个选项和第二个选项连接有什么区别吗?

没有区别。

如果您使用参数调用 new mysqli,它会自动使用这些参数调用 $this->connect()

否则它会使 mysqli 对象处于未连接状态,您必须显式调用 connect() 方法。这就是方法 2 所做的。

如果您需要在连接前调用 mysqli::options(),则使用单独的调用会很有用。一些选项会影响到数据库的连接,例如MYSQLI_OPT_CONNECT_TIMEOUT,所以你需要在调用mysqli::connect()

之前设置它们