PHP - función mysqli_connect_error()

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Diego (5 intervenciones) el 26/03/2019 19:15:24
Hola, tengo la siguiente duda teórica..
esta función según su descripción en php.net es asi:
1
mysqli_connect_error ( void ) : string

pero por otro lado, se suele usar de la siguiente forma:
1
2
3
if ($mysqli->connect_error) {
    die('Error de conexión: ' . $mysqli->connect_error);
}

mi pregunta es, no entiendo si la función retorna un string, cómo puede usarse en la sentencia if como si se tratase de un valor booleano.
a parte la especificacion tambien dice "Una cadena que describe el error. Devuelve NULL si no ha ocurrido ningún error."

entonces estaríamos frente a If null .... o if string ... lo que debería estar mal..
agradezco cualquier aclaración.

Salduos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Yamil Bracho (888 intervenciones) el 26/03/2019 20:22:08
PHP esta chequeando si la expresion es NULL. basicamente NULL es un indicador de la ausencia de valor de una variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Diego (5 intervenciones) el 26/03/2019 21:33:46
pero no devuelve un booleano, eso es lo que no entiendo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Yamil Bracho (888 intervenciones) el 26/03/2019 22:03:41
En la documentacion tienes
Una cadena que describe el error. Devuelve NULL si no ha ocurrido ningún error.

Y el if en realidad es
if($mysqli->connect_error)=== NULL) {...}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Diego (5 intervenciones) el 26/03/2019 22:18:53
gracias a ambos, ahora entonces, se puede decir que toda sentencia if si la condicion que lleva no es de tipo booleano, asume por defecto que es === NULL?
por ej tengo
$a de tipo string

if $a
{
...
}

esto es lo mismo que
if $a === NUL
{
...
}

es asi en general?
me parece que por lo general si $a no es de tipo booleano dara error, por eso me habia surgido la duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan José
Val: 20
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

función mysqli_connect_error()

Publicado por Juan José (12 intervenciones) el 26/03/2019 22:06:32
Si devuelve NULL la conexion sería correcta. Si no lo es devolvería un string, ese String seria el error
Depende de tu estilo a la hora de programar, yo uso más la primera.

Estilo orientado a objetos:
$mysqli->connect_error

Estilo por procedimientos:
mysqli_connect_error ( void ) : string

Básicamente en la condición if está estperando valores distintos a NULL, si no es así entonces la conexion con la base de datos es correcta.
Es como si en otro lenguaje de programacion como por ejemplo java escribes en un método boolean
return alto < ancho
sólo devolverá true si el alto es menor que el ancho. Por lo tanto en PHP con ese if se puede deducir que está esperando a que devuelva algo, suele ser un error. Esos valores serán errores como por ejemplo que no encuentre la BBDD o que no puede conectar por algún valor que le has pasado es erróneo, como el usuario o contraseña, etc.
Cuando devuelva el NULL puedes poner un:

else{
echo "conexion establecida";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar