From: Sean Bright Date: Wed, 31 Jan 2001 22:04:30 +0000 (+0000) Subject: Added the mysql_get_*_info() functions. X-Git-Tag: php-4.0.5RC1~415 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=31c8104dc66064015a867447a631c77610bc8f7e;p=php Added the mysql_get_*_info() functions. # If anyone knows of a version of mysql lower then 3.20.32 that implements # all 3 of these functions, please change the conditionals. @- Added mysql_get_client_info(), mysql_get_server_info(), @ mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean) --- diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 0acac78eb3..f53d8ef028 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -73,6 +73,10 @@ static int le_result, le_link, le_plink; # endif #endif +#if MYSQL_VERSION_ID >= 32032 +#define HAVE_GETINFO_FUNCS +#endif + #if MYSQL_VERSION_ID > 32133 || defined(FIELD_TYPE_TINY) #define MYSQL_HAS_TINY #endif @@ -132,6 +136,12 @@ function_entry mysql_functions[] = { PHP_FE(mysql_field_type, NULL) PHP_FE(mysql_field_flags, NULL) PHP_FE(mysql_escape_string, NULL) +#ifdef HAVE_GETINFO_FUNCS + PHP_FE(mysql_get_client_info, NULL) + PHP_FE(mysql_get_host_info, NULL) + PHP_FE(mysql_get_proto_info, NULL) + PHP_FE(mysql_get_server_info, NULL) +#endif /* for downwards compatability */ PHP_FALIAS(mysql, mysql_db_query, NULL) @@ -689,6 +699,115 @@ PHP_FUNCTION(mysql_select_db) } /* }}} */ +#ifdef HAVE_GETINFO_FUNCS + +/* {{{ proto string mysql_get_client_info([int link_identifier]) + Returns a string that represents the client library version */ +PHP_FUNCTION(mysql_get_client_info) +{ + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } + + RETURN_STRING(mysql_get_client_info(),1); +} +/* }}} */ + +/* {{{ proto string mysql_get_host_info([int link_identifier]) + Returns a string describing the type of connection in use, including the + server host name */ +PHP_FUNCTION(mysql_get_host_info) +{ + zval **mysql_link; + int id; + MYSQL *mysql; + MySLS_FETCH(); + + switch(ZEND_NUM_ARGS()) { + case 0: + id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC); + 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, MYSQL *, mysql_link, id, "MySQL-Link", le_link, le_plink); + + RETURN_STRING(mysql_get_host_info(mysql),1); +} +/* }}} */ + +/* {{{ proto int mysql_get_proto_info([int link_identifier]) + Returns the protocol version used by current connection */ +PHP_FUNCTION(mysql_get_proto_info) +{ + zval **mysql_link; + int id; + MYSQL *mysql; + MySLS_FETCH(); + + switch(ZEND_NUM_ARGS()) { + case 0: + id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC); + 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, MYSQL *, mysql_link, id, "MySQL-Link", le_link, le_plink); + + RETURN_LONG(mysql_get_proto_info(mysql)); +} +/* }}} */ + +/* {{{ proto string mysql_get_server_info([int link_identifier]) + Returns a string that represents the server version number */ +PHP_FUNCTION(mysql_get_server_info) +{ + zval **mysql_link; + int id; + MYSQL *mysql; + MySLS_FETCH(); + + switch(ZEND_NUM_ARGS()) { + case 0: + id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC); + 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, MYSQL *, mysql_link, id, "MySQL-Link", le_link, le_plink); + + RETURN_STRING(mysql_get_server_info(mysql),1); +} +/* }}} */ + +#endif /* {{{ proto int mysql_create_db(string database_name [, int link_identifier]) Create a MySQL database */ diff --git a/ext/mysql/php_mysql.h b/ext/mysql/php_mysql.h index 6d7a1a8611..41957489b7 100644 --- a/ext/mysql/php_mysql.h +++ b/ext/mysql/php_mysql.h @@ -76,6 +76,10 @@ PHP_FUNCTION(mysql_field_len); PHP_FUNCTION(mysql_field_type); PHP_FUNCTION(mysql_field_flags); PHP_FUNCTION(mysql_escape_string); +PHP_FUNCTION(mysql_get_client_info); +PHP_FUNCTION(mysql_get_host_info); +PHP_FUNCTION(mysql_get_proto_info); +PHP_FUNCTION(mysql_get_server_info); ZEND_BEGIN_MODULE_GLOBALS(mysql) long default_link;