diff options
Diffstat (limited to 'ext/mysql/php_mysql.c')
-rw-r--r-- | ext/mysql/php_mysql.c | 195 |
1 files changed, 148 insertions, 47 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 9dfd6e7269..7838df2d07 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -135,65 +135,166 @@ typedef struct _php_mysql_conn { #define MYSQL_DISABLE_MQ #endif +/* {{{ arginfo */ +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_connect, 0, 0, 0) + ZEND_ARG_INFO(0, hostname) + ZEND_ARG_INFO(0, username) + ZEND_ARG_INFO(0, password) + ZEND_ARG_INFO(0, new) + ZEND_ARG_INFO(0, flags) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_pconnect, 0, 0, 0) + ZEND_ARG_INFO(0, hostname) + ZEND_ARG_INFO(0, username) + ZEND_ARG_INFO(0, password) + ZEND_ARG_INFO(0, flags) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo__optional_mysql_link, 0, 0, 0) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_select_db, 0, 0, 1) + ZEND_ARG_INFO(0, database_name) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO(arginfo__void_mysql_arg, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_set_charset, 0, 0, 1) + ZEND_ARG_INFO(0, charset_name) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_query, 0, 0, 1) + ZEND_ARG_INFO(0, query) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_db_query, 0, 0, 2) + ZEND_ARG_INFO(0, database_name) + ZEND_ARG_INFO(0, query) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_list_fields, 0, 0, 2) + ZEND_ARG_INFO(0, database_name) + ZEND_ARG_INFO(0, table_name) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_escape_string, 0, 0, 1) + ZEND_ARG_INFO(0, string) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_real_escape_string, 0, 0, 1) + ZEND_ARG_INFO(0, string) + ZEND_ARG_INFO(0, link_identifier) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_result, 0, 0, 2) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, row) + ZEND_ARG_INFO(0, field) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo__result_mysql_arg, 0, 0, 1) + ZEND_ARG_INFO(0, result) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_fetch_object, 0, 0, 1) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, class_name) + ZEND_ARG_INFO(0, ctor_params) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_fetch_array, 0, 0, 1) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, result_type) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_data_seek, 0, 0, 2) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, row_number) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_fetch_field, 0, 0, 1) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, field_offset) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_field_seek, 0, 0, 2) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, field_offset) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mysql_field_name, 0, 0, 2) + ZEND_ARG_INFO(0, result) + ZEND_ARG_INFO(0, field_index) +ZEND_END_ARG_INFO() +/* }}} */ + /* {{{ mysql_functions[] */ static const zend_function_entry mysql_functions[] = { - PHP_FE(mysql_connect, NULL) - PHP_FE(mysql_pconnect, NULL) - PHP_FE(mysql_close, NULL) - PHP_FE(mysql_select_db, NULL) + PHP_FE(mysql_connect, arginfo_mysql_connect) + PHP_FE(mysql_pconnect, arginfo_mysql_pconnect) + PHP_FE(mysql_close, arginfo__optional_mysql_link) + PHP_FE(mysql_select_db, arginfo_mysql_select_db) #ifndef NETWARE /* The below two functions not supported on NetWare */ #if MYSQL_VERSION_ID < 40000 - PHP_DEP_FE(mysql_create_db, NULL) - PHP_DEP_FE(mysql_drop_db, NULL) + PHP_DEP_FE(mysql_create_db, arginfo_mysql_select_db) + PHP_DEP_FE(mysql_drop_db, arginfo_mysql_select_db) #endif #endif /* NETWARE */ - PHP_FE(mysql_query, NULL) - PHP_FE(mysql_unbuffered_query, NULL) - PHP_FE(mysql_db_query, NULL) - PHP_FE(mysql_list_dbs, NULL) - PHP_DEP_FE(mysql_list_tables, NULL) - PHP_FE(mysql_list_fields, NULL) - PHP_FE(mysql_list_processes, NULL) - PHP_FE(mysql_error, NULL) + PHP_FE(mysql_query, arginfo_mysql_query) + PHP_FE(mysql_unbuffered_query, arginfo_mysql_query) + PHP_FE(mysql_db_query, arginfo_mysql_db_query) + PHP_FE(mysql_list_dbs, arginfo__optional_mysql_link) + PHP_DEP_FE(mysql_list_tables, arginfo_mysql_select_db) + PHP_FE(mysql_list_fields, arginfo_mysql_list_fields) + PHP_FE(mysql_list_processes, arginfo__optional_mysql_link) + PHP_FE(mysql_error, arginfo__optional_mysql_link) #ifdef HAVE_MYSQL_ERRNO - PHP_FE(mysql_errno, NULL) -#endif - PHP_FE(mysql_affected_rows, NULL) - PHP_FE(mysql_insert_id, NULL) - PHP_FE(mysql_result, NULL) - PHP_FE(mysql_num_rows, NULL) - PHP_FE(mysql_num_fields, NULL) - PHP_FE(mysql_fetch_row, NULL) - PHP_FE(mysql_fetch_array, NULL) - PHP_FE(mysql_fetch_assoc, NULL) - PHP_FE(mysql_fetch_object, NULL) - PHP_FE(mysql_data_seek, NULL) - PHP_FE(mysql_fetch_lengths, NULL) - PHP_FE(mysql_fetch_field, NULL) - PHP_FE(mysql_field_seek, NULL) - PHP_FE(mysql_free_result, NULL) - PHP_FE(mysql_field_name, NULL) - PHP_FE(mysql_field_table, NULL) - 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_real_escape_string, NULL) - PHP_FE(mysql_stat, NULL) - PHP_FE(mysql_thread_id, NULL) - PHP_FE(mysql_client_encoding, NULL) - PHP_FE(mysql_ping, NULL) + PHP_FE(mysql_errno, arginfo__optional_mysql_link) +#endif + PHP_FE(mysql_affected_rows, arginfo__optional_mysql_link) + PHP_FE(mysql_insert_id, arginfo__optional_mysql_link) + PHP_FE(mysql_result, arginfo_mysql_result) + PHP_FE(mysql_num_rows, arginfo__result_mysql_arg) + PHP_FE(mysql_num_fields, arginfo__result_mysql_arg) + PHP_FE(mysql_fetch_row, arginfo__result_mysql_arg) + PHP_FE(mysql_fetch_array, arginfo_mysql_fetch_array) + PHP_FE(mysql_fetch_assoc, arginfo__result_mysql_arg) + PHP_FE(mysql_fetch_object, arginfo_mysql_fetch_object) + PHP_FE(mysql_data_seek, arginfo_mysql_data_seek) + PHP_FE(mysql_fetch_lengths, arginfo__result_mysql_arg) + PHP_FE(mysql_fetch_field, arginfo_mysql_fetch_field) + PHP_FE(mysql_field_seek, arginfo_mysql_field_seek) + PHP_FE(mysql_free_result, arginfo__result_mysql_arg) + PHP_FE(mysql_field_name, arginfo_mysql_field_name) + PHP_FE(mysql_field_table, arginfo_mysql_field_seek) + PHP_FE(mysql_field_len, arginfo_mysql_field_seek) + PHP_FE(mysql_field_type, arginfo_mysql_field_seek) + PHP_FE(mysql_field_flags, arginfo_mysql_field_seek) + PHP_FE(mysql_escape_string, arginfo_mysql_escape_string) + PHP_FE(mysql_real_escape_string, arginfo_mysql_real_escape_string) + PHP_FE(mysql_stat, arginfo__optional_mysql_link) + PHP_FE(mysql_thread_id, arginfo__optional_mysql_link) + PHP_FE(mysql_client_encoding, arginfo__optional_mysql_link) + PHP_FE(mysql_ping, arginfo__optional_mysql_link) #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) + PHP_FE(mysql_get_client_info, arginfo__void_mysql_arg) + PHP_FE(mysql_get_host_info, arginfo__optional_mysql_link) + PHP_FE(mysql_get_proto_info, arginfo__optional_mysql_link) + PHP_FE(mysql_get_server_info, arginfo__optional_mysql_link) #endif - PHP_FE(mysql_info, NULL) + PHP_FE(mysql_info, arginfo__optional_mysql_link) #ifdef MYSQL_HAS_SET_CHARSET - PHP_FE(mysql_set_charset, NULL) + PHP_FE(mysql_set_charset, arginfo_mysql_set_charset) #endif /* for downwards compatability */ PHP_FALIAS(mysql, mysql_db_query, NULL) |