PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mysql_query> <mysql_pconnect
Last updated: Fri, 22 Aug 2008

view this page in

mysql_ping

(PHP 4 >= 4.3.0, PHP 5, PECL mysql:1.0)

mysql_pingEfectuar un chequeo de respuesta (ping) sobre una conexión de servidor o reconectarse si no hay conexión

Descripción

bool mysql_ping ([ resource $id_enlace ] )

Chequea si está activa o no la conexión con el servidor. Si ésta se ha caído, una reconexión automática es intentada. Esta función puede ser usada por scripts que permanecen pasivos durante largos espacios de tiempo, para chequear si el servidor ha cerrado la conexión, y reconectarse de ser necesario.

Note: A partir de MySQL 5.0.13, la característica de reconexión automática se encuentra deshabilitada.

Lista de parámetros

link_identifier

The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If by chance no connection is found or established, an E_WARNING level error is generated.

Valores retornados

Devuelve TRUE si la conexión con el servidor MySQL está funcionando, o FALSE de lo contrario.

Ejemplos

Example #1 Un ejemplo de mysql_ping()

<?php
set_time_limit
(0);

$con mysql_connect('localhost''mysqlusuario''mypassword');
$bd  mysql_select_db('mi_bd');

/* Asumiendo que esta consulta toma mucho tiempo */
$resultado mysql_query($sql);
if (!
$resultado) {
    echo 
'La consulta #1 falló, saliendo.';
    exit;
}

/* Asegurarse de que la conexión sigue viva, si no, intentar una
   re-conexión */
if (!mysql_ping($con)) {
    echo 
'Se ha perdido la conexión, saliendo después de la consulta #1';
    exit;
}
mysql_free_result($result);

/* Ya que la conexión sigue viva, corramos otra consulta */
$resultado2 mysql_query($sql2);
?>



mysql_query> <mysql_pconnect
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
mysql_ping
oscar at bitagenda dot com
02-Oct-2007 06:10
Very confusing description.
... If it has gone down, an automatic reconnection is attempted
 (But the function returns only true or false, so if you have variable say $link = connection resource, it will be an invalid resource)

Then ...
... Note:  Since MySQL 5.0.13, automatic reconnection feature is disabled.

OK, if it returns false, I have the chance to reconnect updating my resource variable
$link = reconnect

But I did called the function with $link to do the check, so ...
If no such link is found, it will try to create one as if mysql_connect() was called with no arguments (this are  different arguments than automatic reconnection, doesn't it? I think, automatic reconnecting, say to $link, would be with its own arguments previously used to create the connection)

So bad decision about automatic recconection feature disabled ...

At least the function should have the param by reference, so in case it reconnects with a new link_identifier.

bool mysql_ping ( &[resource $link_identifier] )

Or a return value of link_identifier, not true.

if ($link=mysql_ping($link)) {...} else { whatever }
miro dot dietiker at md-systems dot ch
31-Aug-2007 01:32
When checking if a $resource works...
be prepared that mysql_ping returns NULL as long as $resource is no correct mysql resource.
<?php
$resource
=NULL;
var_dump = @mysql_ping($resource);
# showing NULL
?>
This could be used to decide of a current $resource is a mysql or a mysqli connection when nothing else is available to do that...
dustin hawkins
31-Jul-2006 02:32
When using the mysql_ping command under php 5.1.2 and mysql 5.0, I was having problems with the auto-reconnect "feature", mainly that when the connection was severed, a mysql_ping would not automatically re-establish the connection to the database.

The connection to the DB is dropped when the time without a query excedes the wait_timeout value in my.cnf. You can check your wait_timeout by running the query "SHOW VARIABLES;"

If you're having problems auto-reconnecting when the connection is dropped, use this code:

<?php

$conn
= mysql_connect('localhost','user','pass');
mysql_select_db('db',$conn);

if (!
mysql_ping ($conn)) {
  
//here is the major trick, you have to close the connection (even though its not currently working) for it to recreate properly.
  
mysql_close($conn);
  
$conn = mysql_connect('localhost','user','pass');
  
mysql_select_db('db',$conn);
}

//run queries knowing that your connection is alive....

?>
cybot2000 at yahoo dot de
25-May-2005 06:44
It should be noted that mysql_ping() seems to reset the error message on the server.
I used it to check whether the connection was still alive before reading the error message via mysql_error() and it always returned an empty string. Upon removing the connection check everything worked.
vinicius at teracom dot com dot br
16-Mar-2004 09:35
Is important to remember that if your first connection to mysql don't works, mysql_ping will always return true! So, if you want to check if mysql is connected, first of all you must check if mysql_connect do not returns false and then you can begin to check mysql_ping.

mysql_query> <mysql_pconnect
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites