Conexión a servidor MySQL

Iniciado por Zinc, 1 Julio 2012, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Zinc

Buenos días.
Pongo un simple ejemplo:
Tengo script que realiza una conexión a un servidor sql para realizar consultas, y necesito hacer lo siguiente:
Si la conexion se pudo establecer que muestre una imagen por ej : Conexion Exitosa y en caso contrario una roja que diga Error de Conexion, a groso modo.

El tema es el siguiente:
Cuando el script no se puede conectar porque no encuentra el servidor no muestra ningún error ni devuelve el valor de la conexión, (claro está que no puede conectarse), en cambio, si por ej: Pongo mal el nombre de usuario o la contraseña, sí, efectivamente tira un error y hace lo que yo quiero.
En conclusión, como puedo hacer para que si no se puede conectar al servidor porque este no esta disponible, mostrar la imagen verde.

Si necesitan un poco más de explicación o detalles, no duden en pedirmelos.

En el caso que me puedan ayudar, lo agradecería muchisimo.

Saludos.

SERBice

pon el codigo en cuestion para que podamos ayudarte a ver el error del codigo o modificar lo que haga falta.

GenR_18

Podrías usar el operador lógico OR para que muestre la imagen roja de la conexión falló en caso de que falle.

Código (php) [Seleccionar]

<?php
$con 
mysql_connect(blablabla) or die('<img src="error.jpg"></img>');
?>



Dime si te funciona, también como dicen nos serviría bastante que nos mostraras el código que ya tienes hecho para poder ayudarte de una mejor forma.
Suerte.

Zinc

Cita de: GenR_18 en  4 Julio 2012, 23:58 PM
Podrías usar el operador lógico OR para que muestre la imagen roja de la conexión falló en caso de que falle.

Código (php) [Seleccionar]

<?php
$con 
mysql_connect(blablabla) or die('<img src="error.jpg"></img>');
?>



Dime si te funciona, también como dicen nos serviría bastante que nos mostraras el código que ya tienes hecho para poder ayudarte de una mejor forma.
Suerte.

Eso estoy haciendo, acá la función que realiza la conexión:

function conectar() {
if($this->conexion=mysql_connect($this->Server,$this->User,$this->Password,false,65536) or die(header("location: error.php"))){
mysql_select_db("pulsat");
return $this->conexion;
}

}


Desde local funciona perfecto, ahora cuando quiero probarlo desde un servidor remoto, la pagina queda "cargando", es decir nunca rechaza la conexión por lo tanto, nunca redirije al error.

Gracias por las respuestas.

Saludos!

PD: En mi máquina corre WAMP.

SERBice

habria que ver que version de php/mysql corre en el servidor que quieres poner el script. Asi mismo deberia dar un error timeout si demora mucho, tal vez estes cerrando la ventana antes que llegue ahi o tu script este entrando en un bucle sin salida.

5 segundos deberian ser mas que suficientes si el servidor no tiene demasiada carga:

Limite de tiempo para conexion a mysql:
<?php 
//Set mysql connection timeout to 5 seconds. 
ini_set('mysql.connect_timeout'5); 

?>

Fuente: http://snippetdb.com/php/set-mysql-connection-timeout-period


Zinc

Cita de: SERBice en  5 Julio 2012, 02:52 AM
habria que ver que version de php/mysql corre en el servidor que quieres poner el script. Asi mismo deberia dar un error timeout si demora mucho, tal vez estes cerrando la ventana antes que llegue ahi o tu script este entrando en un bucle sin salida.

5 segundos deberian ser mas que suficientes si el servidor no tiene demasiada carga:

Limite de tiempo para conexion a mysql:
<?php 
//Set mysql connection timeout to 5 seconds. 
ini_set('mysql.connect_timeout'5); 

?>

Fuente: http://snippetdb.com/php/set-mysql-connection-timeout-period



Hola SERBice, gracias por contestar.
Esta sentencia la puedo ejecutar desde cualquier script?

Saludos!

GenR_18

O quizás estás teniendo un error en cuanto a la base de datos, el nombre del server o algo similar.

Creo yo que no es necesario usar la sentencia IF cuando ya estás mencionando que en caso de que no conecte mande al error con or die(), en dado caso podrías usar simplemente un if y en el else mandar al error como lo haces con or die() con header(). No sé si me explico.

Algo asi:

Código (php) [Seleccionar]

<?php
function conectar($user,$pass){
if(mysql_connect('server',$user,$pass)){
return true;
}else{
return false;
}
}
echo 
conectar('username','password') ? 'Conectado' 'No conectado';
?>



Espero haberte ayudado.
Suerte.