2012-10-04 25 views
5

estoy usando este método para conectarse a mysql db:¿Cuál es la diferencia entre mysqli :: real_connect y el nuevo objeto mysqli en la conexión de la base de datos?

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

¿Cuál es la diferencia cuando conecto el uso de este método:

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

Respuesta

7

Es sólo otra forma de conectarse a la base de datos. Si usa mysqli_init() inicializará primero el objeto mysqli. Luego, utilizando el objeto, llamará al real_connect() para conectarse a la base de datos. Pero cuando usa new mysqli(), está inicializando el objeto mysqli al pasar los valores de conexión como parámetros, por lo que realiza la inicialización y la conexión al mismo tiempo.

Nota: Llamar al constructor sin parámetros es lo mismo que llamar a mysqli_init().

En su primer caso obtiene el objeto de conexión como el valor de retorno porque está llamando al constructor mysqli() con los parámetros. Entonces puede ejecutar consultas en él. Pero en el segundo caso que necesita para almacenar la conexión de este tipo,

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

A continuación, ejecutar consultas en $con

+0

Por lo que significa que mi $ this -> _ Con será el mismo con estos 2 método ?? Pero cuando trato de usar el segundo método, supongo que mi declaración de inserción no puede insertar una nueva fila. ¿Tienes alguna idea de por qué? –

+0

revisa mi edición !! – Deepak

+1

@ user1650716 En general, usa * cualquiera * el objeto de 'new mysqli()' * o * la estructura de 'mysql_init()'. No ambos. – staticsan

Cuestiones relacionadas