georg Tue Mar 9 07:01:26 2004 EDT Modified files: /php-src/ext/mysqli config.m4 mysqli_api.c mysqli_fe.c php_mysqli.h Log: fixed memleaks in bind functions added 4.1.2 support (renamed functions)
http://cvs.php.net/diff.php/php-src/ext/mysqli/config.m4?r1=1.14&r2=1.15&ty=u Index: php-src/ext/mysqli/config.m4 diff -u php-src/ext/mysqli/config.m4:1.14 php-src/ext/mysqli/config.m4:1.15 --- php-src/ext/mysqli/config.m4:1.14 Fri Feb 20 08:09:14 2004 +++ php-src/ext/mysqli/config.m4 Tue Mar 9 07:01:23 2004 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.14 2004/02/20 13:09:14 georg Exp $ +dnl $Id: config.m4,v 1.15 2004/03/09 12:01:23 georg Exp $ dnl config.m4 for extension mysqli PHP_ARG_WITH(mysqli, for MySQLi support, @@ -39,11 +39,15 @@ dnl dnl Check the library dnl - PHP_CHECK_LIBRARY(mysqlclient, mysql_bind_param, + PHP_CHECK_LIBRARY(mysqlclient, mysql_set_server_option, [ PHP_EVAL_INCLINE($MYSQLI_INCLINE) PHP_EVAL_LIBLINE($MYSQLI_LIBLINE, MYSQLI_SHARED_LIBADD) AC_DEFINE(HAVE_MYSQLILIB,1,[ ]) + PHP_CHECK_LIBRARY(mysqlclient, mysql_bind_param, + [ + AC_DEFINE(HAVE_MYSQLI_OLDAPI,1,[ ]) + ],[],[]) ],[ AC_MSG_ERROR([wrong mysql library version or lib not found. Check config.log for more information.]) ],[ http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_api.c?r1=1.77&r2=1.78&ty=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.77 php-src/ext/mysqli/mysqli_api.c:1.78 --- php-src/ext/mysqli/mysqli_api.c:1.77 Thu Feb 26 07:24:21 2004 +++ php-src/ext/mysqli/mysqli_api.c Tue Mar 9 07:01:23 2004 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_api.c,v 1.77 2004/02/26 12:24:21 georg Exp $ + $Id: mysqli_api.c,v 1.78 2004/03/09 12:01:23 georg Exp $ */ #ifdef HAVE_CONFIG_H @@ -68,9 +68,9 @@ } /* }}} */ -/* {{{ proto bool mysqli_bind_param(object stmt, string types, mixed variable [,mixed,....]) +/* {{{ proto bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....]) Bind variables to a prepared statement as parameters */ -PHP_FUNCTION(mysqli_bind_param) +PHP_FUNCTION(mysqli_stmt_bind_param) { zval ***args; int argc = ZEND_NUM_ARGS(); @@ -170,8 +170,11 @@ } ofs++; } - +#ifndef HAVE_MYSQLI_OLDAPI + rc = mysql_stmt_bind_param(stmt->stmt, bind); +#else rc = mysql_bind_param(stmt->stmt, bind); +#endif MYSQLI_REPORT_STMT_ERROR(stmt->stmt); if (rc) { @@ -197,14 +200,14 @@ } /* }}} */ -/* {{{ proto bool mysqli_bind_result(object stmt, mixed var, [,mixed, ...]) +/* {{{ proto bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...]) Bind variables to a prepared statement for result storage */ /* TODO: do_alloca, free_alloca */ -PHP_FUNCTION(mysqli_bind_result) +PHP_FUNCTION(mysqli_stmt_bind_result) { zval ***args; int argc = ZEND_NUM_ARGS(); @@ -243,6 +246,7 @@ if (var_cnt != stmt->stmt->field_count) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of bind variables doesn't match number of fields in prepared statmement."); + efree(args); RETURN_FALSE; } @@ -266,9 +270,12 @@ case MYSQL_TYPE_FLOAT: convert_to_double_ex(args[i]); stmt->result.buf[ofs].type = IS_DOUBLE; - stmt->result.buf[ofs].buflen = 0; + stmt->result.buf[ofs].buflen = sizeof(double); + + /* allocate buffer for double */ + stmt->result.buf[ofs].val = (char *)emalloc(sizeof(double)); bind[ofs].buffer_type = MYSQL_TYPE_DOUBLE; - bind[ofs].buffer = (gptr)&Z_DVAL_PP(args[i]); + bind[ofs].buffer = stmt->result.buf[ofs].val; bind[ofs].is_null = &stmt->result.is_null[ofs]; break; @@ -280,17 +287,18 @@ convert_to_long_ex(args[i]); stmt->result.buf[ofs].type = IS_LONG; stmt->result.buf[ofs].buflen = 0; + stmt->result.buf[ofs].val = (char *)emalloc(sizeof(long)); bind[ofs].buffer_type = MYSQL_TYPE_LONG; - bind[ofs].buffer = (gptr)&Z_LVAL_PP(args[i]); + bind[ofs].buffer = stmt->result.buf[ofs].val; bind[ofs].is_null = &stmt->result.is_null[ofs]; break; case MYSQL_TYPE_LONGLONG: stmt->result.buf[ofs].type = IS_STRING; stmt->result.buf[ofs].buflen = sizeof(my_ulonglong); - stmt->result.buf[ofs].buffer = (char *)emalloc(stmt->result.buf[ofs].buflen); + stmt->result.buf[ofs].val = (char *)emalloc(stmt->result.buf[ofs].buflen); bind[ofs].buffer_type = MYSQL_TYPE_LONGLONG; - bind[ofs].buffer = stmt->result.buf[ofs].buffer; + bind[ofs].buffer = stmt->result.buf[ofs].val; bind[ofs].is_null = &stmt->result.is_null[ofs]; bind[ofs].buffer_length = stmt->result.buf[ofs].buflen; break; @@ -307,9 +315,9 @@ stmt->result.buf[ofs].type = IS_STRING; stmt->result.buf[ofs].buflen = (stmt->stmt->fields) ? (stmt->stmt->fields[ofs].length) ? stmt->stmt->fields[ofs].length + 1: 256: 256; - stmt->result.buf[ofs].buffer = (char *)emalloc(stmt->result.buf[ofs].buflen); + stmt->result.buf[ofs].val = (char *)emalloc(stmt->result.buf[ofs].buflen); bind[ofs].buffer_type = MYSQL_TYPE_STRING; - bind[ofs].buffer = stmt->result.buf[ofs].buffer; + bind[ofs].buffer = stmt->result.buf[ofs].val; bind[ofs].is_null = &stmt->result.is_null[ofs]; bind[ofs].buffer_length = stmt->result.buf[ofs].buflen; bind[ofs].length = &stmt->result.buf[ofs].buflen; @@ -317,7 +325,11 @@ } } +#ifndef HAVE_MYSQLI_OLDAPI + rc = mysql_stmt_bind_result(stmt->stmt, bind); +#else rc = mysql_bind_result(stmt->stmt, bind); +#endif MYSQLI_REPORT_STMT_ERROR(stmt->stmt); if (rc) { @@ -521,9 +533,9 @@ } /* }}} */ -/* {{{ proto bool mysqli_execute(object stmt) +/* {{{ proto bool mysqli_stmt_execute(object stmt) Execute a prepared statement */ -PHP_FUNCTION(mysqli_execute) +PHP_FUNCTION(mysqli_stmt_execute) { STMT *stmt; zval *mysql_stmt; @@ -557,8 +569,11 @@ } } } - +#ifndef HAVE_MYSQLI_OLDAPI + if (mysql_stmt_execute(stmt->stmt)) { +#else if (mysql_execute(stmt->stmt)) { +#endif MYSQLI_REPORT_STMT_ERROR(stmt->stmt); RETURN_FALSE; } @@ -570,14 +585,18 @@ } /* }}} */ -/* {{{ proto mixed mysqli_fetch(object stmt) +/* {{{ proto mixed mysqli_stmt_fetch(object stmt) Fetch results from a prepared statement into the bound variables */ -PHP_FUNCTION(mysqli_fetch) +PHP_FUNCTION(mysqli_stmt_fetch) { STMT *stmt; zval *mysql_stmt; unsigned int i; ulong ret; + long lval; + double dval; + my_ulonglong llval; + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) { return; @@ -589,41 +608,44 @@ for (i = 0; i < stmt->result.var_cnt; i++) { if (stmt->result.buf[i].type == IS_STRING) { - memset(stmt->result.buf[i].buffer, 0, stmt->result.buf[i].buflen); + memset(stmt->result.buf[i].val, 0, stmt->result.buf[i].buflen); } } - +#ifndef HAVE_MYSQLI_OLDAPI + if (!(ret = mysql_stmt_fetch(stmt->stmt))) { +#else if (!(ret = mysql_fetch(stmt->stmt))) { - +#endif for (i = 0; i < stmt->result.var_cnt; i++) { + if (stmt->result.vars[i]->type == IS_STRING && stmt->result.vars[i]->value.str.len) { + efree(stmt->result.vars[i]->value.str.val); + } if (!stmt->result.is_null[i]) { switch (stmt->result.buf[i].type) { case IS_LONG: - stmt->result.vars[i]->type = IS_LONG; + memcpy(&lval, stmt->result.buf[i].val, sizeof(long)); + ZVAL_LONG(stmt->result.vars[i], lval); break; case IS_DOUBLE: - stmt->result.vars[i]->type = IS_DOUBLE; + memcpy(&dval, stmt->result.buf[i].val, sizeof(double)); + ZVAL_DOUBLE(stmt->result.vars[i], dval); break; case IS_STRING: if (stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_LONGLONG) { char tmp[50]; - my_ulonglong lval; - memcpy (&lval, stmt->result.buf[i].buffer, sizeof(my_ulonglong)); - if (lval != (long)lval) { + memcpy (&llval, stmt->result.buf[i].val, sizeof(my_ulonglong)); + if (llval != (long)llval) { /* even though lval is declared as unsigned, the value * may be negative. Therefor we cannot use %llu and must * use %lld. */ - sprintf((char *)&tmp, "%lld", lval); + sprintf((char *)&tmp, "%lld", llval); ZVAL_STRING(stmt->result.vars[i], tmp, 1); } else { - ZVAL_LONG(stmt->result.vars[i], lval); + ZVAL_LONG(stmt->result.vars[i], llval); } } else { - if (stmt->result.vars[i]->type == IS_STRING) { - efree(stmt->result.vars[i]->value.str.val); - } - ZVAL_STRING(stmt->result.vars[i], stmt->result.buf[i].buffer, 1); + ZVAL_STRING(stmt->result.vars[i], stmt->result.buf[i].val, 1); } break; default: @@ -1128,7 +1150,7 @@ /* {{{ proto int mysqli_param_count(object stmt) { Return the number of parameter for the given statement */ -PHP_FUNCTION(mysqli_param_count) +PHP_FUNCTION(mysqli_stmt_param_count) { STMT *stmt; zval *mysql_stmt; @@ -1138,7 +1160,11 @@ } MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt"); +#ifndef HAVE_MYSQLI_OLDAPI + RETURN_LONG(mysql_stmt_param_count(stmt->stmt)); +#else RETURN_LONG(mysql_param_count(stmt->stmt)); +#endif } /* }}} */ @@ -1181,8 +1207,16 @@ stmt = (STMT *)ecalloc(1,sizeof(STMT)); +#ifdef HAVE_MYSQLI_OLDAPI stmt->stmt = mysql_prepare(mysql, query, query_len); - +#else + if ((stmt->stmt = mysql_stmt_init(mysql))) { + if (mysql_stmt_prepare(stmt->stmt, query, query_len)) { + mysql_stmt_close(stmt->stmt); + stmt->stmt = NULL; + } + } +#endif if (!stmt->stmt) { MYSQLI_REPORT_MYSQL_ERROR(mysql); efree(stmt); @@ -1195,31 +1229,6 @@ } /* }}} */ -/* {{{ proto mixed mysqli_get_metadata(object stmt) - return result set from statement */ -PHP_FUNCTION(mysqli_get_metadata) -{ - STMT *stmt; - MYSQL_RES *result; - zval *mysql_stmt; - MYSQLI_RESOURCE *mysqli_resource; - - if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) { - return; - } - MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt"); - - if (!(result = mysql_get_metadata(stmt->stmt))){ - MYSQLI_REPORT_STMT_ERROR(stmt->stmt); - RETURN_FALSE; - } - - mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); - mysqli_resource->ptr = (void *)result; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); -} -/* }}} */ - /* {{{ proto bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]]) Open a connection to a mysql server */ PHP_FUNCTION(mysqli_real_connect) @@ -1355,7 +1364,7 @@ /* {{{ proto bool mysqli_send_long_data(object stmt, int param_nr, string data) */ -PHP_FUNCTION(mysqli_send_long_data) +PHP_FUNCTION(mysqli_stmt_send_long_data) { STMT *stmt; zval *mysql_stmt; @@ -1372,8 +1381,11 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter number"); RETURN_FALSE; } - +#ifndef HAVE_MYSQLI_OLDAPI + if (mysql_stmt_send_long_data(stmt->stmt, param_nr, data, data_len)) { +#else if (mysql_send_long_data(stmt->stmt, param_nr, data, data_len)) { +#endif RETURN_FALSE; } RETURN_TRUE; @@ -1605,6 +1617,85 @@ } /* }}} */ +#ifndef HAVE_MYSQLI_OLDAPI +/* {{{ proto object mysqli_stmt_init(object link) + Initialize statement object +*/ +PHP_FUNCTION(mysqli_stmt_init) +{ + MYSQL *mysql; + STMT *stmt; + zval *mysql_link; + MYSQLI_RESOURCE *mysqli_resource; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",&mysql_link, mysqli_link_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link"); + + if (!(stmt->stmt = mysql_stmt_init(mysql))) { + RETURN_FALSE; + } + + mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); + mysqli_resource->ptr = (void *)stmt; + MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry); +} +/* }}} */ + +/* {{{ proto bool mysqli_stmt_prepare(object link, string query) + prepare server side statement with query +*/ +PHP_FUNCTION(mysqli_stmt_prepare) +{ + STMT *stmt; + zval *mysql_stmt; + char *query; + int query_len; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_stmt, mysqli_stmt_class_entry, &query, &query_len) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt"); + + if (mysql_stmt_prepare(stmt->stmt, query, query_len)) { + MYSQLI_REPORT_STMT_ERROR(stmt->stmt); + RETURN_FALSE; + } + RETURN_TRUE; +} +/* }}} */ +#endif + +/* {{{ proto mixed mysqli_stmt_result_metadata(object stmt) + return result set from statement */ +PHP_FUNCTION(mysqli_stmt_result_metadata) +{ + STMT *stmt; + MYSQL_RES *result; + zval *mysql_stmt; + MYSQLI_RESOURCE *mysqli_resource; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt"); + +#ifndef HAVE_MYSQLI_OLDAPI + if (!(result = mysql_stmt_result_metadata(stmt->stmt))){ +#else + if (!(result = mysql_get_metadata(stmt->stmt))){ +#endif + MYSQLI_REPORT_STMT_ERROR(stmt->stmt); + RETURN_FALSE; + } + + mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); + mysqli_resource->ptr = (void *)result; + MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); +} +/* }}} */ + /* {{{ proto bool mysqli_stmt_store_result(stmt) */ PHP_FUNCTION(mysqli_stmt_store_result) http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_fe.c?r1=1.31&r2=1.32&ty=u Index: php-src/ext/mysqli/mysqli_fe.c diff -u php-src/ext/mysqli/mysqli_fe.c:1.31 php-src/ext/mysqli/mysqli_fe.c:1.32 --- php-src/ext/mysqli/mysqli_fe.c:1.31 Wed Mar 3 13:54:20 2004 +++ php-src/ext/mysqli/mysqli_fe.c Tue Mar 9 07:01:23 2004 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_fe.c,v 1.31 2004/03/03 18:54:20 edink Exp $ + $Id: mysqli_fe.c,v 1.32 2004/03/09 12:01:23 georg Exp $ */ #ifdef HAVE_CONFIG_H @@ -53,12 +53,8 @@ function_entry mysqli_functions[] = { PHP_FE(mysqli_affected_rows, NULL) PHP_FE(mysqli_autocommit, NULL) - PHP_FE(mysqli_bind_param, third_arg_force_by_ref_rest) - PHP_FE(mysqli_bind_result, second_arg_force_by_ref_rest) PHP_FE(mysqli_change_user, NULL) PHP_FE(mysqli_character_set_name, NULL) - PHP_FALIAS(mysqli_client_encoding, - mysqli_character_set_name, NULL) PHP_FE(mysqli_close, NULL) PHP_FE(mysqli_commit, NULL) PHP_FE(mysqli_connect, NULL) @@ -76,8 +72,8 @@ PHP_FE(mysqli_enable_rpl_parse, NULL) PHP_FE(mysqli_errno, NULL) PHP_FE(mysqli_error, NULL) - PHP_FE(mysqli_execute, NULL) - PHP_FE(mysqli_fetch, NULL) + PHP_FE(mysqli_stmt_execute, NULL) + PHP_FALIAS(mysqli_execute, mysqli_stmt_execute, NULL) PHP_FE(mysqli_fetch_field, NULL) PHP_FE(mysqli_fetch_fields, NULL) PHP_FE(mysqli_fetch_field_direct, NULL) @@ -93,7 +89,6 @@ PHP_FE(mysqli_get_client_info, NULL) PHP_FE(mysqli_get_client_version, NULL) PHP_FE(mysqli_get_host_info, NULL) - PHP_FE(mysqli_get_metadata, NULL) PHP_FE(mysqli_get_proto_info, NULL) PHP_FE(mysqli_get_server_info, NULL) PHP_FE(mysqli_get_server_version, NULL) @@ -108,28 +103,33 @@ PHP_FE(mysqli_num_fields, NULL) PHP_FE(mysqli_num_rows, NULL) PHP_FE(mysqli_options, NULL) - PHP_FE(mysqli_param_count, NULL) PHP_FE(mysqli_ping, NULL) PHP_FE(mysqli_prepare, NULL) PHP_FE(mysqli_report, NULL) PHP_FE(mysqli_query, NULL) PHP_FE(mysqli_real_connect, NULL) PHP_FE(mysqli_real_escape_string, NULL) - PHP_FALIAS(mysqli_escape_string, - mysqli_real_escape_string, NULL) PHP_FE(mysqli_real_query, NULL) PHP_FE(mysqli_rollback, NULL) PHP_FE(mysqli_rpl_parse_enabled, NULL) PHP_FE(mysqli_rpl_probe, NULL) PHP_FE(mysqli_rpl_query_type, NULL) PHP_FE(mysqli_select_db, NULL) - PHP_FE(mysqli_send_long_data, NULL) +#ifndef HAVE_MYSQLI_OLDAPI + PHP_FE(mysqli_stmt_init, NULL) + PHP_FE(mysqli_stmt_prepare, NULL) +#endif + PHP_FE(mysqli_stmt_result_metadata, NULL) + PHP_FE(mysqli_stmt_send_long_data, NULL) + PHP_FE(mysqli_stmt_bind_param, third_arg_force_by_ref_rest) + PHP_FE(mysqli_stmt_bind_result, second_arg_force_by_ref_rest) + PHP_FE(mysqli_stmt_fetch, NULL) + PHP_FE(mysqli_stmt_param_count, NULL) PHP_FE(mysqli_send_query, NULL) #ifdef HAVE_EMBEDDED_MYSQLI PHP_FE(mysqli_server_end, NULL) PHP_FE(mysqli_server_init, NULL) #endif - PHP_FALIAS(mysqli_set_opt, mysqli_options, NULL) PHP_FE(mysqli_slave_query, NULL) #if MYSQL_VERSION_ID >= 40101 PHP_FE(mysqli_sqlstate, NULL) @@ -151,6 +151,25 @@ PHP_FE(mysqli_thread_safe, NULL) PHP_FE(mysqli_use_result, NULL) PHP_FE(mysqli_warning_count, NULL) + + /* Aliases */ + PHP_FALIAS(mysqli_bind_param, + mysqli_stmt_bind_param, third_arg_force_by_ref_rest) + PHP_FALIAS(mysqli_bind_result, + mysqli_stmt_bind_result, second_arg_force_by_ref_rest) + PHP_FALIAS(mysqli_client_encoding, + mysqli_character_set_name, NULL) + PHP_FALIAS(mysqli_escape_string, + mysqli_real_escape_string, NULL) + PHP_FALIAS(mysqli_fetch, mysqli_stmt_fetch, NULL) + PHP_FALIAS(mysqli_param_count, + mysqli_stmt_param_count, NULL) + PHP_FALIAS(mysqli_get_metadata, + mysqli_stmt_result_metadata, NULL) + PHP_FALIAS(mysqli_send_long_data, + mysqli_stmt_send_long_data, NULL) + PHP_FALIAS(mysqli_set_opt, mysqli_options, NULL) + {NULL, NULL, NULL} /* Must be the last line in mysqli_functions[] */ }; /* }}} */ @@ -199,6 +218,9 @@ PHP_FALIAS(slave_query,mysqli_slave_query,NULL) PHP_FALIAS(ssl_set,mysqli_ssl_set,NULL) PHP_FALIAS(stat,mysqli_stat,NULL) +#ifndef HAVE_MYSQLI_OLDAPI + PHP_FALIAS(stmt_init,mysqli_stmt_init, NULL) +#endif PHP_FALIAS(store_result,mysqli_store_result,NULL) PHP_FALIAS(thread_safe,mysqli_thread_safe,NULL) PHP_FALIAS(use_result,mysqli_use_result,NULL) @@ -234,16 +256,19 @@ */ function_entry mysqli_stmt_methods[] = { PHP_FALIAS(affected_rows,mysqli_stmt_affected_rows,NULL) - PHP_FALIAS(bind_param,mysqli_bind_param,second_arg_force_by_ref_rest) - PHP_FALIAS(bind_result,mysqli_bind_result,all_args_force_by_ref) + PHP_FALIAS(bind_param,mysqli_stmt_bind_param,second_arg_force_by_ref_rest) + PHP_FALIAS(bind_result,mysqli_stmt_bind_result,all_args_force_by_ref) PHP_FALIAS(close,mysqli_stmt_close,NULL) PHP_FALIAS(data_seek,mysqli_stmt_data_seek,NULL) - PHP_FALIAS(execute,mysqli_execute,NULL) - PHP_FALIAS(fetch,mysqli_fetch,NULL) - PHP_FALIAS(get_metadata, mysqli_get_metadata,NULL) + PHP_FALIAS(execute,mysqli_stmt_execute,NULL) + PHP_FALIAS(fetch,mysqli_stmt_fetch,NULL) + PHP_FALIAS(get_metadata, mysqli_stmt_result_metadata,NULL) PHP_FALIAS(num_rows, mysqli_stmt_num_rows,NULL) - PHP_FALIAS(send_long_data,mysqli_send_long_data,NULL) + PHP_FALIAS(send_long_data,mysqli_stmt_send_long_data,NULL) PHP_FALIAS(stmt,mysqli_prepare,NULL) +#ifndef HAVE_MYSQLI_OLDAPI + PHP_FALIAS(prepare,mysqli_stmt_prepare, NULL) +#endif PHP_FALIAS(store_result,mysqli_stmt_store_result,NULL) {NULL, NULL, NULL} }; http://cvs.php.net/diff.php/php-src/ext/mysqli/php_mysqli.h?r1=1.32&r2=1.33&ty=u Index: php-src/ext/mysqli/php_mysqli.h diff -u php-src/ext/mysqli/php_mysqli.h:1.32 php-src/ext/mysqli/php_mysqli.h:1.33 --- php-src/ext/mysqli/php_mysqli.h:1.32 Thu Feb 26 07:33:23 2004 +++ php-src/ext/mysqli/php_mysqli.h Tue Mar 9 07:01:23 2004 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: php_mysqli.h,v 1.32 2004/02/26 12:33:23 sniper Exp $ + $Id: php_mysqli.h,v 1.33 2004/03/09 12:01:23 georg Exp $ */ /* A little hack to prevent build break, when mysql is used together with @@ -30,10 +30,9 @@ #ifndef PHP_MYSQLI_H #define PHP_MYSQLI_H - typedef struct { ulong buflen; - char *buffer; + char *val; ulong type; } VAR_BUFFER; @@ -259,8 +258,6 @@ PHP_FUNCTION(mysqli); PHP_FUNCTION(mysqli_affected_rows); PHP_FUNCTION(mysqli_autocommit); -PHP_FUNCTION(mysqli_bind_param); -PHP_FUNCTION(mysqli_bind_result); PHP_FUNCTION(mysqli_change_user); PHP_FUNCTION(mysqli_character_set_name); PHP_FUNCTION(mysqli_close); @@ -280,8 +277,6 @@ PHP_FUNCTION(mysqli_enable_rpl_parse); PHP_FUNCTION(mysqli_errno); PHP_FUNCTION(mysqli_error); -PHP_FUNCTION(mysqli_execute); -PHP_FUNCTION(mysqli_fetch); PHP_FUNCTION(mysqli_fetch_array); PHP_FUNCTION(mysqli_fetch_assoc); PHP_FUNCTION(mysqli_fetch_object); @@ -311,11 +306,10 @@ PHP_FUNCTION(mysqli_num_fields); PHP_FUNCTION(mysqli_num_rows); PHP_FUNCTION(mysqli_options); -PHP_FUNCTION(mysqli_param_count); PHP_FUNCTION(mysqli_ping); PHP_FUNCTION(mysqli_prepare); PHP_FUNCTION(mysqli_query); -PHP_FUNCTION(mysqli_get_metadata); +PHP_FUNCTION(mysqli_stmt_result_metadata); PHP_FUNCTION(mysqli_report); PHP_FUNCTION(mysqli_read_query_result); PHP_FUNCTION(mysqli_real_connect); @@ -327,7 +321,16 @@ PHP_FUNCTION(mysqli_rpl_probe); PHP_FUNCTION(mysqli_rpl_query_type); PHP_FUNCTION(mysqli_select_db); -PHP_FUNCTION(mysqli_send_long_data); +PHP_FUNCTION(mysqli_stmt_bind_param); +PHP_FUNCTION(mysqli_stmt_bind_result); +PHP_FUNCTION(mysqli_stmt_execute); +#ifndef MYSQLI_HAVE_OLDAPI +PHP_FUNCTION(mysqli_stmt_init); +PHP_FUNCTION(mysqli_stmt_prepare); +#endif +PHP_FUNCTION(mysqli_stmt_fetch); +PHP_FUNCTION(mysqli_stmt_param_count); +PHP_FUNCTION(mysqli_stmt_send_long_data); PHP_FUNCTION(mysqli_send_query); #ifdef HAVE_EMBEDDED_MYSQLI PHP_FUNCTION(mysqli_server_init);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php