yohgaki         Tue Oct  1 22:41:21 2002 EDT

  Modified files:              
    /php4       NEWS 
    /php4/ext/pgsql     pgsql.c php_pgsql.h 
  Log:
  Added pg_ping()
  
  
Index: php4/NEWS
diff -u php4/NEWS:1.1165 php4/NEWS:1.1166
--- php4/NEWS:1.1165    Tue Oct  1 22:11:26 2002
+++ php4/NEWS   Tue Oct  1 22:41:19 2002
@@ -7,7 +7,7 @@
 - Fixed bug #17825 (ob_start() chunk size option didn't work well). (Yasuo)
 - Fixed output buffering implicit flush. (Yasuo) 
 - Added getopt() for parsing command line options and arguments. (Jon)
-- Added pg_fetch_assoc(), pg_fetch_all(), pg_meta_data(), pg_convert(), 
+- Added pg_fetch_assoc(), pg_fetch_all(), pg_ping(), pg_meta_data(), pg_convert(), 
   pg_insert(), pg_select(), pg_update() and pg_delete(). (Yasuo)
 - Fixed bug #17281 (Sanity checks for encoding sessions). (Ilia)
 - Fixed bug #16995 and #19392 (Prevent crash if $HTTP_SESSION_VARS != ARRAY).
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.225 php4/ext/pgsql/pgsql.c:1.226
--- php4/ext/pgsql/pgsql.c:1.225        Tue Oct  1 22:11:26 2002
+++ php4/ext/pgsql/pgsql.c      Tue Oct  1 22:41:21 2002
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.225 2002/10/02 02:11:26 yohgaki Exp $ */
+/* $Id: pgsql.c,v 1.226 2002/10/02 02:41:21 yohgaki Exp $ */
 
 #include <stdlib.h>
 
@@ -88,6 +88,7 @@
        PHP_FE(pg_port,                 NULL)
        PHP_FE(pg_tty,                  NULL)
        PHP_FE(pg_options,              NULL)
+       PHP_FE(pg_ping,                 NULL)
        /* query functions */
        PHP_FE(pg_query,                NULL)
        PHP_FE(pg_send_query,   NULL)
@@ -146,7 +147,7 @@
        PHP_FE(pg_set_client_encoding,  NULL)
 #endif
        /* misc function */
-       PHP_FE(pg_meta_data,     NULL)
+       PHP_FE(pg_meta_data,    NULL)
        PHP_FE(pg_convert,      NULL)
        PHP_FE(pg_insert,       NULL)
        PHP_FE(pg_update,       NULL)
@@ -837,6 +838,37 @@
 PHP_FUNCTION(pg_host)
 {
        php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAM_PASSTHRU,PHP_PG_HOST);
+}
+/* }}} */
+
+/* {{{ proto bool pg_ping([resource connection])
+   Ping database. If connection is bad, try to reconnect. */
+PHP_FUNCTION(pg_ping)
+{
+       zval *pgsql_link = NULL;
+       int id = -1;
+       PGconn *pgsql;
+
+       if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() 
+TSRMLS_CC, "r",
+                                                                &pgsql_link) == 
+FAILURE) {
+               RETURN_FALSE;
+       }
+
+       ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", 
+le_link, le_plink);
+
+       /* ping connection */
+       PQexec(pgsql, "SELECT 1;");
+
+       /* check status. */
+       if (PQstatus(pgsql) == CONNECTION_OK)
+               RETURN_TRUE;
+
+       /* reset connection if it's broken */
+       PQreset(pgsql);
+       if (PQstatus(pgsql) == CONNECTION_OK) {
+               RETURN_TRUE;
+       }
+       RETURN_FALSE;
 }
 /* }}} */
 
Index: php4/ext/pgsql/php_pgsql.h
diff -u php4/ext/pgsql/php_pgsql.h:1.49 php4/ext/pgsql/php_pgsql.h:1.50
--- php4/ext/pgsql/php_pgsql.h:1.49     Tue Oct  1 22:11:27 2002
+++ php4/ext/pgsql/php_pgsql.h  Tue Oct  1 22:41:21 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: php_pgsql.h,v 1.49 2002/10/02 02:11:27 yohgaki Exp $ */
+/* $Id: php_pgsql.h,v 1.50 2002/10/02 02:41:21 yohgaki Exp $ */
 
 #ifndef PHP_PGSQL_H
 #define PHP_PGSQL_H
@@ -71,6 +71,7 @@
 PHP_FUNCTION(pg_port);
 PHP_FUNCTION(pg_tty);
 PHP_FUNCTION(pg_options);
+PHP_FUNCTION(pg_ping);
 /* query functions */
 PHP_FUNCTION(pg_query);
 PHP_FUNCTION(pg_send_query);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to