简体   繁体   中英

What is the difference between mysqli::real_connect and new mysqli object in connecting database?

I'm using this method to connect to mysql db :

$this->_Con = new mysqli($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']);

What is the difference when I connect using this method:

$this->_Con = mysqli_init();
$this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']);

Its just another way of connecting to your database. If you use mysqli_init() it will initialize the mysqli object first. Then using the object you will call real_connect() to connect to the database. But when you use new mysqli() you are initializing the mysqli object by passing in the connection values as parameters, So it does initialization and connection at the same time.

Note: Calling the constructor with no parameters is the same as calling mysqli_init().

In your first case you are getting the connection object as the return value because you are calling mysqli() constructor with parameters. So you can run queries on it. But in your second case you need to store the connection like this,

$con = $this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']);

Then run queries on $con

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM