Mysqli library offers a number of alternative syntaxes for establishing connection to the MySQL server.
#1
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
# 2
$mysqli = new mysqli(); $mysqli->connect('localhost', 'my_user', 'my_password', 'my_db');
I am not asking about procedural vs OOP style nor am I asking about mysqli_connect()
vs mysqli_real_connect()
.
What is the purpose of the mysqli:connect()
method, and is there any difference between connecting using the first option and the second option?
Advertisement
Answer
There’s no difference.
If you call new mysqli
with arguments, it calls $this->connect()
with those arguments automatically.
Otherwise it leaves the mysqli
object unconnected, and you have to call the connect()
method explicitly. That’s what method 2 is doing.
Using separate calls can be useful if you need to call mysqli::options()
before connecting. Some of the options affect connecting to the DB, e.g. MYSQLI_OPT_CONNECT_TIMEOUT
, so you need to set them before calling mysqli::connect()