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