diff options
author | ULF WENDEL <uw@php.net> | 2012-10-23 12:02:58 +0200 |
---|---|---|
committer | ULF WENDEL <uw@php.net> | 2012-10-23 12:02:58 +0200 |
commit | e7fc671dc0ad335cba9ff2a564387612e32b68e1 (patch) | |
tree | 8d6accfc97c8dafe3a454b11d542cf0ddfe319d9 | |
parent | 84ab603fc783689f38c6d0047d85a3c7bb031ae4 (diff) | |
download | php-git-e7fc671dc0ad335cba9ff2a564387612e32b68e1.tar.gz |
Deprecating undocumented function alias, related to bug #63295
-rw-r--r-- | ext/mysql/php_mysql.c | 40 | ||||
-rw-r--r-- | ext/mysql/tests/mysql_reflection_extension.phpt | 105 | ||||
-rw-r--r-- | ext/mysql/tests/mysql_reflection_functions.phpt | 387 |
3 files changed, 512 insertions, 20 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index d6a0c94677..f1aab94f8a 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -297,27 +297,27 @@ static const zend_function_entry mysql_functions[] = { PHP_FE(mysql_set_charset, arginfo_mysql_set_charset) #endif /* for downwards compatability */ - PHP_FALIAS(mysql, mysql_db_query, arginfo_mysql_db_query) - PHP_FALIAS(mysql_fieldname, mysql_field_name, arginfo_mysql_field_name) - PHP_FALIAS(mysql_fieldtable, mysql_field_table, arginfo_mysql_field_seek) - PHP_FALIAS(mysql_fieldlen, mysql_field_len, arginfo_mysql_field_seek) - PHP_FALIAS(mysql_fieldtype, mysql_field_type, arginfo_mysql_field_seek) - PHP_FALIAS(mysql_fieldflags, mysql_field_flags, arginfo_mysql_field_seek) - PHP_FALIAS(mysql_selectdb, mysql_select_db, arginfo_mysql_select_db) + PHP_DEP_FALIAS(mysql, mysql_db_query, arginfo_mysql_db_query) + PHP_DEP_FALIAS(mysql_fieldname, mysql_field_name, arginfo_mysql_field_name) + PHP_DEP_FALIAS(mysql_fieldtable, mysql_field_table, arginfo_mysql_field_seek) + PHP_DEP_FALIAS(mysql_fieldlen, mysql_field_len, arginfo_mysql_field_seek) + PHP_DEP_FALIAS(mysql_fieldtype, mysql_field_type, arginfo_mysql_field_seek) + PHP_DEP_FALIAS(mysql_fieldflags, mysql_field_flags, arginfo_mysql_field_seek) + PHP_DEP_FALIAS(mysql_selectdb, mysql_select_db, arginfo_mysql_select_db) #ifndef NETWARE /* The below two functions not supported on NetWare */ #if MYSQL_VERSION_ID < 40000 PHP_DEP_FALIAS(mysql_createdb, mysql_create_db, arginfo_mysql_select_db) PHP_DEP_FALIAS(mysql_dropdb, mysql_drop_db, arginfo_mysql_select_db) #endif #endif /* NETWARE */ - PHP_FALIAS(mysql_freeresult, mysql_free_result, arginfo__result_mysql_arg) - PHP_FALIAS(mysql_numfields, mysql_num_fields, arginfo__result_mysql_arg) - PHP_FALIAS(mysql_numrows, mysql_num_rows, arginfo__result_mysql_arg) - PHP_FALIAS(mysql_listdbs, mysql_list_dbs, arginfo__optional_mysql_link) + PHP_DEP_FALIAS(mysql_freeresult, mysql_free_result, arginfo__result_mysql_arg) + PHP_DEP_FALIAS(mysql_numfields, mysql_num_fields, arginfo__result_mysql_arg) + PHP_DEP_FALIAS(mysql_numrows, mysql_num_rows, arginfo__result_mysql_arg) + PHP_DEP_FALIAS(mysql_listdbs, mysql_list_dbs, arginfo__optional_mysql_link) PHP_DEP_FALIAS(mysql_listtables,mysql_list_tables, arginfo_mysql_select_db) - PHP_FALIAS(mysql_listfields, mysql_list_fields, arginfo_mysql_list_fields) + PHP_DEP_FALIAS(mysql_listfields, mysql_list_fields, arginfo_mysql_list_fields) PHP_FALIAS(mysql_db_name, mysql_result, arginfo_mysql_result) - PHP_FALIAS(mysql_dbname, mysql_result, arginfo_mysql_result) + PHP_DEP_FALIAS(mysql_dbname, mysql_result, arginfo_mysql_result) PHP_FALIAS(mysql_tablename, mysql_result, arginfo_mysql_result) PHP_FALIAS(mysql_table_name, mysql_result, arginfo_mysql_result) PHP_FE_END @@ -1989,16 +1989,16 @@ Q: String or long first? if (sql_row[field_offset]) { Z_TYPE_P(return_value) = IS_STRING; -#if PHP_API_VERSION < 20100412 +#if PHP_API_VERSION < 20100412 if (PG(magic_quotes_runtime)) { Z_STRVAL_P(return_value) = php_addslashes(sql_row[field_offset], sql_row_lengths[field_offset],&Z_STRLEN_P(return_value), 0 TSRMLS_CC); } else { -#endif +#endif Z_STRLEN_P(return_value) = sql_row_lengths[field_offset]; Z_STRVAL_P(return_value) = (char *) safe_estrndup(sql_row[field_offset], Z_STRLEN_P(return_value)); #if PHP_API_VERSION < 20100412 } -#endif +#endif } else { Z_TYPE_P(return_value) = IS_NULL; } @@ -2116,16 +2116,16 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type, MAKE_STD_ZVAL(data); -#if PHP_API_VERSION < 20100412 +#if PHP_API_VERSION < 20100412 if (PG(magic_quotes_runtime)) { Z_TYPE_P(data) = IS_STRING; Z_STRVAL_P(data) = php_addslashes(mysql_row[i], mysql_row_lengths[i], &Z_STRLEN_P(data), 0 TSRMLS_CC); } else { -#endif +#endif ZVAL_STRINGL(data, mysql_row[i], mysql_row_lengths[i], 1); -#if PHP_API_VERSION < 20100412 +#if PHP_API_VERSION < 20100412 } -#endif +#endif if (result_type & MYSQL_NUM) { add_index_zval(return_value, i, data); diff --git a/ext/mysql/tests/mysql_reflection_extension.phpt b/ext/mysql/tests/mysql_reflection_extension.phpt new file mode 100644 index 0000000000..169036cd54 --- /dev/null +++ b/ext/mysql/tests/mysql_reflection_extension.phpt @@ -0,0 +1,105 @@ +--TEST-- +ReflectionExtension basics to check API +--SKIPIF-- +<?php +require_once('skipif.inc'); +?> +--FILE-- +<?php + $r = new ReflectionExtension("mysql"); + + printf("Name: %s\n", $r->name); + printf("Version: %s\n", $r->getVersion()); + $classes = $r->getClasses(); + if (!empty($classes)) { + printf("[002] Expecting no class\n"); + asort($classes); + var_dump($classes); + } + + $ignore = array(); + + $functions = $r->getFunctions(); + asort($functions); + printf("Functions:\n"); + foreach ($functions as $func) { + if (isset($ignore[$func->name])) { + unset($ignore[$func->name]); + } else { + printf(" %s\n", $func->name); + } + } + if (!empty($ignore)) { + printf("Dumping version dependent and missing functions\n"); + var_dump($ignore); + } + + + print "done!"; +?> +--EXPECTF-- +Name: mysql +Version: 1.0 +Functions: + mysql + mysql_affected_rows + mysql_client_encoding + mysql_close + mysql_connect + mysql_data_seek + mysql_db_name + mysql_db_query + mysql_dbname + mysql_errno + mysql_error + mysql_escape_string + mysql_fetch_array + mysql_fetch_assoc + mysql_fetch_field + mysql_fetch_lengths + mysql_fetch_object + mysql_fetch_row + mysql_field_flags + mysql_field_len + mysql_field_name + mysql_field_seek + mysql_field_table + mysql_field_type + mysql_fieldflags + mysql_fieldlen + mysql_fieldname + mysql_fieldtable + mysql_fieldtype + mysql_free_result + mysql_freeresult + mysql_get_client_info + mysql_get_host_info + mysql_get_proto_info + mysql_get_server_info + mysql_info + mysql_insert_id + mysql_list_dbs + mysql_list_fields + mysql_list_processes + mysql_list_tables + mysql_listdbs + mysql_listfields + mysql_listtables + mysql_num_fields + mysql_num_rows + mysql_numfields + mysql_numrows + mysql_pconnect + mysql_ping + mysql_query + mysql_real_escape_string + mysql_result + mysql_select_db + mysql_selectdb + mysql_set_charset + mysql_stat + mysql_table_name + mysql_tablename + mysql_thread_id + mysql_unbuffered_query +done!
\ No newline at end of file diff --git a/ext/mysql/tests/mysql_reflection_functions.phpt b/ext/mysql/tests/mysql_reflection_functions.phpt new file mode 100644 index 0000000000..4f2710d806 --- /dev/null +++ b/ext/mysql/tests/mysql_reflection_functions.phpt @@ -0,0 +1,387 @@ +--TEST-- +ReflectionFunction to check API +--SKIPIF-- +<?php +require_once('skipif.inc'); +?> +--FILE-- +<?php + $r = new ReflectionExtension("mysql"); + + $ignore = array(); + + $functions = $r->getFunctions(); + asort($functions); + printf("Functions:\n"); + foreach ($functions as $func) { + if (isset($ignore[$func->name])) + continue; + + printf(" %s\n", $func->name); + $rf = new ReflectionFunction($func->name); + printf(" Deprecated: %s\n", $rf->isDeprecated() ? "yes" : "no"); + printf(" Accepted parameters: %d\n", $rf->getNumberOfParameters()); + printf(" Required parameters: %d\n", $rf->getNumberOfRequiredParameters()); + foreach( $rf->getParameters() as $param ) { + printf(" %s\n", $param); + } + } + + print "done!"; +?> +--EXPECTF-- +Functions: + mysql + Deprecated: yes + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <required> $query ] + Parameter #2 [ <optional> $link_identifier ] + mysql_affected_rows + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_client_encoding + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_close + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_connect + Deprecated: no + Accepted parameters: 5 + Required parameters: 0 + Parameter #0 [ <optional> $hostname ] + Parameter #1 [ <optional> $username ] + Parameter #2 [ <optional> $password ] + Parameter #3 [ <optional> $new ] + Parameter #4 [ <optional> $flags ] + mysql_data_seek + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row_number ] + mysql_db_name + Deprecated: no + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row ] + Parameter #2 [ <optional> $field ] + mysql_db_query + Deprecated: yes + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <required> $query ] + Parameter #2 [ <optional> $link_identifier ] + mysql_dbname + Deprecated: yes + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row ] + Parameter #2 [ <optional> $field ] + mysql_errno + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_error + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_escape_string + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $string ] + mysql_fetch_array + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $result ] + Parameter #1 [ <optional> $result_type ] + mysql_fetch_assoc + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_fetch_field + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $result ] + Parameter #1 [ <optional> $field_offset ] + mysql_fetch_lengths + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_fetch_object + Deprecated: no + Accepted parameters: 3 + Required parameters: 1 + Parameter #0 [ <required> $result ] + Parameter #1 [ <optional> $class_name ] + Parameter #2 [ <optional> $ctor_params ] + mysql_fetch_row + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_field_flags + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_field_len + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_field_name + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_index ] + mysql_field_seek + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_field_table + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_field_type + Deprecated: no + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_fieldflags + Deprecated: yes + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_fieldlen + Deprecated: yes + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_fieldname + Deprecated: yes + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_index ] + mysql_fieldtable + Deprecated: yes + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_fieldtype + Deprecated: yes + Accepted parameters: 2 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $field_offset ] + mysql_free_result + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_freeresult + Deprecated: yes + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_get_client_info + Deprecated: no + Accepted parameters: 0 + Required parameters: 0 + mysql_get_host_info + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_get_proto_info + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_get_server_info + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_info + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_insert_id + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_list_dbs + Deprecated: yes + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_list_fields + Deprecated: no + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <required> $table_name ] + Parameter #2 [ <optional> $link_identifier ] + mysql_list_processes + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_list_tables + Deprecated: yes + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <optional> $link_identifier ] + mysql_listdbs + Deprecated: yes + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_listfields + Deprecated: yes + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <required> $table_name ] + Parameter #2 [ <optional> $link_identifier ] + mysql_listtables + Deprecated: yes + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <optional> $link_identifier ] + mysql_num_fields + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_num_rows + Deprecated: no + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_numfields + Deprecated: yes + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_numrows + Deprecated: yes + Accepted parameters: 1 + Required parameters: 1 + Parameter #0 [ <required> $result ] + mysql_pconnect + Deprecated: no + Accepted parameters: 4 + Required parameters: 0 + Parameter #0 [ <optional> $hostname ] + Parameter #1 [ <optional> $username ] + Parameter #2 [ <optional> $password ] + Parameter #3 [ <optional> $flags ] + mysql_ping + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_query + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $query ] + Parameter #1 [ <optional> $link_identifier ] + mysql_real_escape_string + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $string ] + Parameter #1 [ <optional> $link_identifier ] + mysql_result + Deprecated: no + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row ] + Parameter #2 [ <optional> $field ] + mysql_select_db + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <optional> $link_identifier ] + mysql_selectdb + Deprecated: yes + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $database_name ] + Parameter #1 [ <optional> $link_identifier ] + mysql_set_charset + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $charset_name ] + Parameter #1 [ <optional> $link_identifier ] + mysql_stat + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_table_name + Deprecated: no + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row ] + Parameter #2 [ <optional> $field ] + mysql_tablename + Deprecated: no + Accepted parameters: 3 + Required parameters: 2 + Parameter #0 [ <required> $result ] + Parameter #1 [ <required> $row ] + Parameter #2 [ <optional> $field ] + mysql_thread_id + Deprecated: no + Accepted parameters: 1 + Required parameters: 0 + Parameter #0 [ <optional> $link_identifier ] + mysql_unbuffered_query + Deprecated: no + Accepted parameters: 2 + Required parameters: 1 + Parameter #0 [ <required> $query ] + Parameter #1 [ <optional> $link_identifier ] +done!
\ No newline at end of file |