this is because it tries to use sockets with the string localhost this is documented en known
mysqli::real_connect
mysqli_real_connect
(PHP 5)
mysqli::real_connect -- mysqli_real_connect — Abre una conexión a un servidor mysql
Descripción
Estilo orientado a objetos
$host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Estilo por procedimientos
$link
[, string $host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Establece una conexióna un motor de bases de datos MySQL.
Esta función difiere de mysqli_connect() en:
-
mysqli_real_connect() necesita un objeto válido que haya sido creado por la función mysqli_init().
-
Con la función mysqli_options() se pueden establecer varias opciones de conexión.
-
Existe un parámetro
flags.
Parámetros
-
link -
Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()
-
host -
Pueded ser un nombre de host o una dirección IP. Si se pasa el valor
NULLo la cadena "localhost" a este parámetro, se asume el host local. Cuando sea podsible se usarán tuberías en lugar del protocolo TCP/IP. -
username -
El nombre de usuario de MySQL.
-
passwd -
Si se proporciona o es
NULL, el servidor MySQL intentará autenticar al usuario con los registros de usuarios que solamente no tengan contraseña. Esto permite a un nombre de usuario que sea usado con diferentes permisos (dependiendo de si se proporciona una constraseña o no). -
dbname -
Si se proporciona especificará la base de datos predeterminada a ser usada para realizar consultas.
-
port -
Especifica el número de puerto con el que intentar conectarse al servidor MySQL.
-
socket -
Especifica el socket o la tubería con nombre que debería usarse.
Nota:
Especificar el parámetro
socketno determinará explícitamente el tipo de conexión a usar al conectarse al servidor MySQL. El modo de realizar la conexión a la base de datos de MySQL está determinado por el parámetrohost. -
flags -
Con el parámetro
flagsse pueden establecer diferentes opciones de conexión:Banderas soportadas Nobre Descripción MYSQLI_CLIENT_COMPRESSUsar el protocolo de comprensión MYSQLI_CLIENT_FOUND_ROWSDevolver el número de filas coincidentes, no el número de filas afectadas MYSQLI_CLIENT_IGNORE_SPACEPermitir espacioes después de los nombres de funciones. Hace que todos los nombres de funciones sean palabras reservadas. MYSQLI_CLIENT_INTERACTIVEPermite interactive_timeout segundos (en vez de wait_timeout segundos) de inactividad antes de cerrar la conexión MYSQLI_CLIENT_SSLUsar SSL (encriptación) Nota:
Por razones de seguridad la bandera
MULTI_STATEMENTno está soportada en PHP. Si quiere ejecutar múltilples consultas use la función mysqli_multi_query().
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de mysqli::real_connect()
Estilo orientado a objetos
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('Falló mysqli_init');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Falló la configuración de MYSQLI_INIT_COMMAND');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Falló la configuración de MYSQLI_OPT_CONNECT_TIMEOUT');
}
if (!$mysqli->real_connect('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd')) {
die('Error de conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Éxito... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Estilo orientado a objetos al extender la clase mysqli
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $usuario, $contraseña, $bd) {
parent::init();
if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Falló la configuración de MYSQLI_INIT_COMMAND');
}
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Falló la configuración de MYSQLI_OPT_CONNECT_TIMEOUT');
}
if (!parent::real_connect($host, $usuario, $contraseña, $bd)) {
die('Error de conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$bd = new foo_mysqli('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd');
echo 'Éxito... ' . $bd->host_info . "\n";
$bd->close();
?>
Estilo por procedimientos
<?php
$enlace = mysqli_init();
if (!$enlace) {
die('Falló mysqli_init');
}
if (!mysqli_options($enlace, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Falló la configuración de MYSQLI_INIT_COMMAND');
}
if (!mysqli_options($enlace, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Falló la configuración de MYSQLI_OPT_CONNECT_TIMEOUT');
}
if (!mysqli_real_connect($enlace, 'localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd')) {
die('Error de conexión (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Éxito... ' . mysqli_get_host_info($enlace) . "\n";
mysqli_close($enlace);
?>
El resultado de los ejemplos serían:
Éxito... MySQL host info: localhost via TCP/IP
Notas
Nota:
MySQLnd siempre utiliza el juego de caracteres de idioma predeterminado. El juego de caracteres se envía en la autentificación/acuerdo que se produce durante la conexión, que utilizará mysqlnd.
Libmysqlclient utiliza el juego de caracteres predeterminado definido en my.cnf o se puede establecer llamando mysqli_options() antes de user mysqli_real_connect(), pero después de mysqli_init().
Ver también
- mysqli_connect() - Alias de mysqli::__construct
- mysqli_init() - Inicializa y devuelve un recurso para utilizarlo con mysqli_real_connect()
- mysqli_options() - Establecer opciones
- mysqli_ssl_set() - Usada para establece conexiones seguras usando SSL
- mysqli_close() - Cierra una conexión a base de datos previamente abierta
