Re: cvs: php4 /ext/mysql php_mysql.c php_mysql.h
| From: | Markus Fischer | 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