Re: cvs: php4 /ext/mysql php_mysql.c php_mysql.h

From: Date: Sun, 24 Mar 2002 11:04:49 +0000
Subject: Re: cvs: php4 /ext/mysql php_mysql.c php_mysql.h
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-10639@lists.php.net to get a copy of this message
Can we please use the new API right from the start (zend_parse_parameters) ? and, please do not mix code with WS fixes . . . :-/ On Sun, Mar 24, 2002 at 10:57:40AM -0000, Zak Greant wrote : > zak Sun Mar 24 05:57:40 2002 EDT > > Modified files: > /php4/ext/mysql php_mysql.c php_mysql.h > Log: > (PHP mysql_list_processes) Returns a pointer to a result set containing > information on the processes running in the > MySQL server. > (PHP mysql_stat) Returns a string containing information on the status > of the MySQL server. > @- Added two new functions: mysql_list_processes and mysql_stat (Georg) > @- mysql_list_processes() fetches information on the processes running on > @ the MySQL server. > @- mysql_stat() returns status information for a MySQL server. > # Committed for Georg by Zak > > > Index: php4/ext/mysql/php_mysql.c > diff -u php4/ext/mysql/php_mysql.c:1.118 php4/ext/mysql/php_mysql.c:1.119 > --- php4/ext/mysql/php_mysql.c:1.118 Tue Mar 19 20:31:22 2002 > +++ php4/ext/mysql/php_mysql.c Sun Mar 24 05:57:40 2002 > @@ -16,7 +16,7 @@ > +----------------------------------------------------------------------+ > */ > > -/* $Id: php_mysql.c,v 1.118 2002/03/20 01:31:22 sniper Exp $ */ > +/* $Id: php_mysql.c,v 1.119 2002/03/24 10:57:40 zak Exp $ */ > > > /* TODO: > @@ -130,6 +130,7 @@ > PHP_FE(mysql_list_dbs, NULL) > PHP_FE(mysql_list_tables, NULL) > PHP_FE(mysql_list_fields, NULL) > + PHP_FE(mysql_list_processes, NULL) > PHP_FE(mysql_error, NULL) > #ifdef HAVE_MYSQL_ERRNO > PHP_FE(mysql_errno, NULL) > @@ -153,7 +154,8 @@ > PHP_FE(mysql_field_len, NULL) > PHP_FE(mysql_field_type, NULL) > PHP_FE(mysql_field_flags, NULL) > - PHP_FE(mysql_escape_string, NULL) > + PHP_FE(mysql_escape_string, NULL) > + PHP_FE(mysql_stat, NULL) > #ifdef HAVE_GETINFO_FUNCS > PHP_FE(mysql_get_client_info, NULL) > PHP_FE(mysql_get_host_info, NULL) > @@ -195,7 +197,7 @@ > ZEND_MODULE_STARTUP_N(mysql), > PHP_MSHUTDOWN(mysql), > PHP_RINIT(mysql), > - PHP_RSHUTDOWN(mysql), > + PHP_RSHUTDOWN(mysql), > PHP_MINFO(mysql), > NO_VERSION_YET, > STANDARD_MODULE_PROPERTIES > @@ -524,7 +526,7 @@ > if ((tmp=strchr(tmp, ':'))) { > tmp++; > socket=tmp; > - } > + } > } else { > socket = tmp; > } > @@ -542,7 +544,7 @@ > } > if (persistent) { > list_entry *le; > - > + > /* try to find if we already have this link in our persistent list */ > if (zend_hash_find(&EG(persistent_list), hashed_details, hashed_details_length+1, (void > **) &le)==FAILURE) { /* we don't */ > list_entry new_le; > @@ -572,12 +574,12 @@ > php_error(E_WARNING, "%s", MySG(connect_error)); > #if defined(HAVE_MYSQL_ERRNO) > MySG(connect_errno)=mysql_errno(&mysql->conn); > -#endif > +#endif > free(mysql); > efree(hashed_details); > MYSQL_DO_CONNECT_RETURN_FALSE(); > } > - > + > /* hash it up */ > Z_TYPE(new_le) = le_plink; > new_le.ptr = mysql; > @@ -902,6 +904,45 @@ > } > /* }}} */ > > +/* {{{ proto string mysql_stat([int link_identifier]) > + Returns a string containing status information */ > +PHP_FUNCTION(mysql_stat) > +{ > + zval **mysql_link; > + char *stat; > + char *key, *val; > + int id; > + php_mysql_conn *mysql; > + > + switch(ZEND_NUM_ARGS()) { > + case 0: > + id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); > + CHECK_LINK(id); > + break; > + case 1: > + if (zend_get_parameters_ex(1,&mysql_link)==FAILURE) { > + RETURN_FALSE; > + } > + id = -1; > + break; > + default: > + WRONG_PARAM_COUNT; > + break; > + } > + > + ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", > le_link, le_plink); > + > + stat = mysql_stat(&mysql->conn); > + > + // split string in array > + if (array_init(return_value) == FAILURE) { > + RETURN_FALSE; > + } > + > + RETURN_STRING(stat, 1); > +} > +/* }}} */ > + > #endif > > #if MYSQL_VERSION_ID < 40000 > @@ -912,7 +953,7 @@ > zval **db, **mysql_link; > int id; > php_mysql_conn *mysql; > - > + > switch(ZEND_NUM_ARGS()) { > case 1: > if (zend_get_parameters_ex(1, &db)==FAILURE) { > @@ -1018,7 +1059,7 @@ > > convert_to_string_ex(query); > /* mysql_query is binary unsafe, use mysql_real_query */ > -#if MYSQL_VERSION_ID > 32199 > +#if MYSQL_VERSION_ID > 32199 > if (mysql_real_query(&mysql->conn, Z_STRVAL_PP(query), Z_STRLEN_PP(query))!=0) { > RETURN_FALSE; > } > @@ -1135,7 +1176,7 @@ > int id; > php_mysql_conn *mysql; > MYSQL_RES *mysql_result; > - > + > switch(ZEND_NUM_ARGS()) { > case 0: > id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); > @@ -1151,7 +1192,7 @@ > WRONG_PARAM_COUNT; > break; > } > - > + > ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", > le_link, le_plink); > > if ((mysql_result=mysql_list_dbs(&mysql->conn, NULL))==NULL) { > @@ -1190,9 +1231,9 @@ > WRONG_PARAM_COUNT; > break; > } > - > + > ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", > le_link, le_plink); > - > + > convert_to_string_ex(db); > if (mysql_select_db(&mysql->conn, Z_STRVAL_PP(db))!=0) { > RETURN_FALSE; > @@ -1214,7 +1255,7 @@ > int id; > php_mysql_conn *mysql; > MYSQL_RES *mysql_result; > - > + > switch(ZEND_NUM_ARGS()) { > case 2: > if (zend_get_parameters_ex(2, &db, &table)==FAILURE) { > @@ -1233,9 +1274,9 @@ > WRONG_PARAM_COUNT; > break; > } > - > + > ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", > le_link, le_plink); > - > + > convert_to_string_ex(db); > if (mysql_select_db(&mysql->conn, Z_STRVAL_PP(db))!=0) { > RETURN_FALSE; > @@ -1249,6 +1290,41 @@ > } > /* }}} */ > > +/* {{{ proto resource mysql_list_processes([int link_identifier]) > + Returns a result set describing the current server threads */ > +PHP_FUNCTION(mysql_list_processes) > +{ > + zval **mysql_link; > + int id; > + php_mysql_conn *mysql; > + MYSQL_RES *mysql_result; > + > + switch(ZEND_NUM_ARGS()) { > + case 0: > + id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); > + CHECK_LINK(id); > + break; > + case 1: > + if (zend_get_parameters_ex(1, &mysql_link)==FAILURE) { > + RETURN_FALSE; > + } > + id = -1; > + break; > + default: > + WRONG_PARAM_COUNT; > + break; > + } > + > + ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", > le_link, le_plink); > + > + if ((mysql_result=mysql_list_processes(&mysql->conn))==NULL) { > + php_error(E_WARNING, "Unable to save MySQL query result"); > + RETURN_FALSE; > + } > + ZEND_REGISTER_RESOURCE(return_value, mysql_result, le_result); > +} > +/* }}} */ > + > > /* {{{ proto string mysql_error([int link_identifier]) > Returns the text of the error message from previous MySQL operation */ > @@ -2060,11 +2136,11 @@ > if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &result)==FAILURE) { > WRONG_PARAM_COUNT; > } > - > + > if (Z_TYPE_PP(result)==IS_RESOURCE && Z_LVAL_PP(result)==0) { > RETURN_FALSE; > } > - > + > ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", > le_result); > > zend_list_delete(Z_LVAL_PP(result)); > Index: php4/ext/mysql/php_mysql.h > diff -u php4/ext/mysql/php_mysql.h:1.26 php4/ext/mysql/php_mysql.h:1.27 > --- php4/ext/mysql/php_mysql.h:1.26 Thu Feb 28 03:26:26 2002 > +++ php4/ext/mysql/php_mysql.h Sun Mar 24 05:57:40 2002 > @@ -17,7 +17,7 @@ > */ > > > -/* $Id: php_mysql.h,v 1.26 2002/02/28 08:26:26 sebastian Exp $ */ > +/* $Id: php_mysql.h,v 1.27 2002/03/24 10:57:40 zak Exp $ */ > > #ifndef PHP_MYSQL_H > #define PHP_MYSQL_H > @@ -58,6 +58,7 @@ > PHP_FUNCTION(mysql_list_dbs); > PHP_FUNCTION(mysql_list_tables); > PHP_FUNCTION(mysql_list_fields); > +PHP_FUNCTION(mysql_list_processes); > PHP_FUNCTION(mysql_error); > PHP_FUNCTION(mysql_errno); > PHP_FUNCTION(mysql_affected_rows); > @@ -84,6 +85,7 @@ > PHP_FUNCTION(mysql_get_host_info); > PHP_FUNCTION(mysql_get_proto_info); > PHP_FUNCTION(mysql_get_server_info); > +PHP_FUNCTION(mysql_stat); > > ZEND_BEGIN_MODULE_GLOBALS(mysql) > long default_link; > > > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php -- Please always Cc to me when replying to me on the lists. GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc

« previous php.cvs (#10639) next »