felipe Fri Oct 3 17:18:31 2008 UTC Modified files: /php-src/ext/msql php_msql.c Log: - Fixed: - Some segfaults when no connection is open - Warning about cfg_get_long (Kalle) - New parameter parsing API
http://cvs.php.net/viewvc.cgi/php-src/ext/msql/php_msql.c?r1=1.72&r2=1.73&diff_format=u Index: php-src/ext/msql/php_msql.c diff -u php-src/ext/msql/php_msql.c:1.72 php-src/ext/msql/php_msql.c:1.73 --- php-src/ext/msql/php_msql.c:1.72 Sun Jul 20 14:29:29 2008 +++ php-src/ext/msql/php_msql.c Fri Oct 3 17:18:30 2008 @@ -16,13 +16,14 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_msql.c,v 1.72 2008/07/20 14:29:29 felipe Exp $ */ +/* $Id: php_msql.c,v 1.73 2008/10/03 17:18:30 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" +#include "php_ini.h" #include "php_msql.h" #include "ext/standard/php_standard.h" #include "ext/standard/info.h" @@ -429,12 +430,12 @@ zend_rsrc_list_entry *le; if (msql_globals.max_links!=-1 && msql_globals.num_links>=msql_globals.max_links) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%d)", msql_globals.num_links); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%ld)", msql_globals.num_links); efree(hashed_details); RETURN_FALSE; } if (msql_globals.max_persistent!=-1 && msql_globals.num_persistent>=msql_globals.max_persistent) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open persistent links (%d)", msql_globals.num_persistent); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open persistent links (%ld)", msql_globals.num_persistent); efree(hashed_details); RETURN_FALSE; } @@ -445,6 +446,7 @@ /* create the link */ if ((msql=msqlConnect(host))==-1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "A link to the server could not be established"); efree(hashed_details); RETURN_FALSE; } @@ -505,7 +507,7 @@ } } if (msql_globals.max_links!=-1 && msql_globals.num_links>=msql_globals.max_links) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%d)",msql_globals.num_links); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%ld)", msql_globals.num_links); efree(hashed_details); RETURN_FALSE; } @@ -563,23 +565,16 @@ Close an mSQL connection */ PHP_FUNCTION(msql_close) { - zval *msql_link; - int id; + zval *msql_link = NULL; + int id = -1; int msql; - switch (ZEND_NUM_ARGS()) { - case 0: - id = msql_globals.default_link; - break; - case 1: - if (zend_get_parameters(ht, 1, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|r", &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 0) { + id = msql_globals.default_link; } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); @@ -602,34 +597,25 @@ Select an mSQL database */ PHP_FUNCTION(msql_select_db) { - zval *db,*msql_link; - int id; - int msql; + zval *msql_link = NULL; + char *db; + int db_len, msql, id = -1; - switch(ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &db)==FAILURE) { - RETURN_FALSE; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 2: - if (zend_get_parameters(ht, 2, &db, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &db, &db_len, &msql_link) == FAILURE) { + return; } + if (ZEND_NUM_ARGS() == 1) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } + } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - - convert_to_string(db); - if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) { + if (msqlSelectDB(msql, db) == -1) { RETURN_FALSE; } else { RETURN_TRUE; @@ -641,32 +627,25 @@ Create an mSQL database */ PHP_FUNCTION(msql_create_db) { - zval *db,*msql_link; - int id; - int msql; + zval *msql_link = NULL; + char *db; + int id = -1, db_len, msql; - switch(ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &db)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 2: - if (zend_get_parameters(ht, 2, &db, &msql_link)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &db, &db_len, &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 1) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(db); - if (msqlCreateDB(msql,Z_STRVAL_P(db))<0) { + if (msqlCreateDB(msql, db) < 0) { RETURN_FALSE; } else { RETURN_TRUE; @@ -678,32 +657,25 @@ Drop (delete) an mSQL database */ PHP_FUNCTION(msql_drop_db) { - zval *db,*msql_link; - int id; - int msql; + zval *msql_link = NULL; + char *db; + int id = -1, msql, db_len; - switch(ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &db)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 2: - if (zend_get_parameters(ht, 2, &db, &msql_link)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &db, &db_len, &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 1) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(db); - if (msqlDropDB(msql,Z_STRVAL_P(db))<0) { + if (msqlDropDB(msql, db) < 0) { RETURN_FALSE; } else { RETURN_TRUE; @@ -715,33 +687,25 @@ Send an SQL query to mSQL */ PHP_FUNCTION(msql_query) { - zval *query,*msql_link; - int id; - int msql; - int af_rows; + zval *msql_link = NULL; + char *query; + int id, msql, query_len, af_rows; - switch(ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &query)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = msql_globals.default_link; - break; - case 2: - if (zend_get_parameters(ht, 2, &query, &msql_link)==FAILURE) { - WRONG_PARAM_COUNT; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &query, &query_len, &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 1) { + id = msql_globals.default_link; + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(query); - if ((af_rows = msqlQuery(msql,Z_STRVAL_P(query)))==-1) { + if ((af_rows = msqlQuery(msql, query)) == -1) { RETURN_FALSE; } ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msqlStoreResult(), af_rows), msql_globals.le_query); @@ -752,38 +716,32 @@ Send an SQL query to mSQL */ PHP_FUNCTION(msql_db_query) { - zval *db,*query,*msql_link; - int id; + zval *msql_link = NULL; + char *db, *query; + int db_len, query_len; + int id = -1; int msql; int af_rows; - switch(ZEND_NUM_ARGS()) { - case 2: - if (zend_get_parameters(ht, 2, &db, &query)==FAILURE) { - RETURN_FALSE; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 3: - if (zend_get_parameters(ht, 3, &db, &query, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|r", &db, &db_len, &query, &query_len, &msql_link) == FAILURE) { + return; } + if (ZEND_NUM_ARGS() == 2) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } + } + ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(db); - if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) { + if (msqlSelectDB(msql, db) == -1) { RETURN_FALSE; } - convert_to_string(query); - if ((af_rows = msqlQuery(msql,Z_STRVAL_P(query)))==-1) { + if ((af_rows = msqlQuery(msql, query)) == -1) { RETURN_FALSE; } ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msqlStoreResult(), af_rows), msql_globals.le_query); @@ -794,29 +752,25 @@ List databases available on an mSQL server */ PHP_FUNCTION(msql_list_dbs) { - zval *msql_link; - int id; - int msql; + zval *msql_link = NULL; + int id = -1, msql; m_result *msql_result; - switch(ZEND_NUM_ARGS()) { - case 0: - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 1: - if (zend_get_parameters(ht, 1, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|r", &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 0) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - if ((msql_result=msqlListDBs(msql))==NULL) { + if ((msql_result = msqlListDBs(msql)) == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to save mSQL query result"); RETURN_FALSE; } @@ -828,36 +782,29 @@ List tables in an mSQL database */ PHP_FUNCTION(msql_list_tables) { - zval *db,*msql_link; - int id; - int msql; + zval *msql_link = NULL; + char *db; + int id = -1, msql, db_len; m_result *msql_result; - switch(ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &db)==FAILURE) { - RETURN_FALSE; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 2: - if (zend_get_parameters(ht, 2, &db, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|r", &db, &db_len, &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 1) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(db); - if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) { + if (msqlSelectDB(msql, db) == -1) { RETURN_FALSE; } - if ((msql_result=msqlListTables(msql))==NULL) { + if ((msql_result = msqlListTables(msql)) == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to save mSQL query result"); RETURN_FALSE; } @@ -869,37 +816,30 @@ List mSQL result fields */ PHP_FUNCTION(msql_list_fields) { - zval *db,*table,*msql_link; - int id; - int msql; + zval *msql_link = NULL; + char *db, *table; + int db_len, table_len, id = -1, msql; m_result *msql_result; - switch(ZEND_NUM_ARGS()) { - case 2: - if (zend_get_parameters(ht, 2, &db, &table)==FAILURE) { - RETURN_FALSE; - } - id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); - break; - case 3: - if (zend_get_parameters(ht, 3, &db, &table, &msql_link)==FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|r", &db, &db_len, &table, &table_len, &msql_link) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 2) { + id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (id == -1) { + RETURN_FALSE; + } } ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink); - convert_to_string(db); - if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) { + if (msqlSelectDB(msql, db) == -1) { RETURN_FALSE; } - convert_to_string(table); - if ((msql_result=msqlListFields(msql,Z_STRVAL_P(table)))==NULL) { + + if ((msql_result=msqlListFields(msql, table)) == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to save mSQL query result"); RETURN_FALSE; } @@ -918,46 +858,35 @@ } /* }}} */ -/* {{{ proto string msql_result(int query, int row [, mixed field]) +/* {{{ proto string msql_result(resource result, int row [, mixed field]) Get result data */ PHP_FUNCTION(msql_result) { - zval *result, *row, *field=NULL; + zval *result, *field = NULL; + long row; m_result *msql_result; m_query *msql_query; m_row sql_row; int field_offset=0; - switch (ZEND_NUM_ARGS()) { - case 2: - if (zend_get_parameters(ht, 2, &result, &row)==FAILURE) { - RETURN_FALSE; - } - break; - case 3: - if (zend_get_parameters(ht, 3, &result, &row, &field)==FAILURE) { - RETURN_FALSE; - } - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|z", &result, &row, &field) == FAILURE) { + return; } MSQL_GET_QUERY(result); - convert_to_long(row); - if (Z_LVAL_P(row)<0 || Z_LVAL_P(row)>=msqlNumRows(msql_result)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to jump to row %ld on mSQL query index %ld", Z_LVAL_P(row), Z_LVAL_P(result)); + if (row < 0 || row >= msqlNumRows(msql_result)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to jump to row %ld on mSQL query index %ld", row, Z_RESVAL_P(result)); RETURN_FALSE; } - msqlDataSeek(msql_result,Z_LVAL_P(row)); - if ((sql_row=msqlFetchRow(msql_result))==NULL) { /* shouldn't happen? */ + + msqlDataSeek(msql_result, row); + if ((sql_row = msqlFetchRow(msql_result)) == NULL) { /* shouldn't happen? */ RETURN_FALSE; } if (field) { - switch(Z_TYPE_P(field)) { + switch (Z_TYPE_P(field)) { case IS_STRING: { int i=0; m_field *tmp_field; @@ -969,7 +898,7 @@ field_name = estrdup(tmp+1); } else { table_name = NULL; - field_name = estrndup(Z_STRVAL_P(field),Z_STRLEN_P(field)); + field_name = estrndup(Z_STRVAL_P(field), Z_STRLEN_P(field)); } msqlFieldSeek(msql_result,0); while ((tmp_field=msqlFetchField(msql_result))) { @@ -997,7 +926,7 @@ default: convert_to_long(field); field_offset = Z_LVAL_P(field); - if (field_offset<0 || field_offset>=msqlNumFields(msql_result)) { + if (field_offset < 0 || field_offset >= msqlNumFields(msql_result)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad column offset specified"); RETURN_FALSE; } @@ -1006,8 +935,8 @@ } if (sql_row[field_offset]) { - Z_STRLEN_P(return_value) = (sql_row[field_offset]?strlen(sql_row[field_offset]):0); - Z_STRVAL_P(return_value) = (char *) safe_estrndup(sql_row[field_offset],Z_STRLEN_P(return_value)); + Z_STRLEN_P(return_value) = (sql_row[field_offset] ? strlen(sql_row[field_offset]) : 0); + Z_STRVAL_P(return_value) = (char *) safe_estrndup(sql_row[field_offset], Z_STRLEN_P(return_value)); Z_TYPE_P(return_value) = IS_STRING; } else { ZVAL_FALSE(return_value); @@ -1023,8 +952,8 @@ m_result *msql_result; m_query *msql_query; - if (ZEND_NUM_ARGS()!=1 || zend_get_parameters(ht, 1, &result)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &result) == FAILURE) { + return; } MSQL_GET_QUERY(result); @@ -1040,8 +969,8 @@ m_result *msql_result; m_query *msql_query; - if (ZEND_NUM_ARGS()!=1 || zend_get_parameters(ht, 1, &result)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &result)==FAILURE) { + return; } MSQL_GET_QUERY(result); @@ -1053,7 +982,8 @@ */ static void php_msql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) { - zval *result, *arg2; + zval *result; + long arg2; m_result *msql_result; m_row msql_row; m_field *msql_field; @@ -1061,29 +991,20 @@ int num_fields; int i; - switch (ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &result)==FAILURE) { - RETURN_FALSE; - } - if (!result_type) { - result_type = MSQL_BOTH; - } - break; - case 2: - if (zend_get_parameters(ht, 2, &result, &arg2)==FAILURE) { - RETURN_FALSE; - } - convert_to_long(arg2); - result_type = Z_LVAL_P(arg2); - break; - default: - WRONG_PARAM_COUNT; - break; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &result, &arg2) == FAILURE) { + return; + } + + if (ZEND_NUM_ARGS() == 1) { + if (!result_type) { + result_type = MSQL_BOTH; + } + } else { + result_type = (int) arg2; } MSQL_GET_QUERY(result); - if (!msql_result || (msql_row=msqlFetchRow(msql_result))==NULL) { + if (!msql_result || (msql_row=msqlFetchRow(msql_result)) == NULL) { RETURN_FALSE; } @@ -1155,23 +1076,22 @@ Move internal result pointer */ PHP_FUNCTION(msql_data_seek) { - zval *result,*offset; + zval *result; + long offset; m_result *msql_result; m_query *msql_query; - if (ZEND_NUM_ARGS()!=2 || zend_get_parameters(ht, 2, &result, &offset)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &result, &offset) == FAILURE) { + return; } MSQL_GET_QUERY(result); - convert_to_long(offset); - if (!msql_result || - Z_LVAL_P(offset)<0 || - Z_LVAL_P(offset)>=msqlNumRows(msql_result)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is invalid for mSQL query index %ld", Z_LVAL_P(offset), Z_LVAL_P(result)); + + if (!msql_result || offset < 0 || offset >= msqlNumRows(msql_result)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is invalid for mSQL query index %ld", offset, Z_RESVAL_P(result)); RETURN_FALSE; } - msqlDataSeek(msql_result,Z_LVAL_P(offset)); + msqlDataSeek(msql_result, offset); RETURN_TRUE; } /* }}} */ @@ -1221,36 +1141,26 @@ Get column information from a result and return as an object */ PHP_FUNCTION(msql_fetch_field) { - zval *result, *field=NULL; + zval *result; + long field = 0; m_result *msql_result; m_field *msql_field; m_query *msql_query; - switch (ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters(ht, 1, &result)==FAILURE) { - RETURN_FALSE; - } - break; - case 2: - if (zend_get_parameters(ht, 2, &result, &field)==FAILURE) { - RETURN_FALSE; - } - convert_to_long(field); - default: - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &result, &field)==FAILURE) { + return; } MSQL_GET_QUERY(result); - if (field) { - if (Z_LVAL_P(field)<0 || Z_LVAL_P(field)>=msqlNumRows(msql_result)) { + if (ZEND_NUM_ARGS() > 1) { + if (field < 0 || field >= msqlNumRows(msql_result)) { php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Bad field offset specified"); RETURN_FALSE; } - msqlFieldSeek(msql_result,Z_LVAL_P(field)); + msqlFieldSeek(msql_result, field); } - if (!msql_result || (msql_field=msqlFetchField(msql_result))==NULL) { + if (!msql_result || (msql_field = msqlFetchField(msql_result)) == NULL) { RETURN_FALSE; } object_init(return_value); @@ -1272,25 +1182,25 @@ Set result pointer to a specific field offset */ PHP_FUNCTION(msql_field_seek) { - zval *result, *offset; + zval *result; + long offset; m_result *msql_result; m_query *msql_query; - if (ZEND_NUM_ARGS()!=2 || zend_get_parameters(ht, 2, &result, &offset)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &result, &offset) == FAILURE) { + return; } MSQL_GET_QUERY(result); - convert_to_long(offset); - if(!msql_result) { + + if (!msql_result) { RETURN_FALSE; } - if (Z_LVAL_P(offset)<0 || Z_LVAL_P(offset)>=msqlNumFields(msql_result)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING,"Field %ld is invalid for mSQL query index %ld", - Z_LVAL_P(offset),Z_LVAL_P(result)); + if (offset < 0 || offset >= msqlNumFields(msql_result)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING,"Field %ld is invalid for mSQL query index %ld", offset, Z_RESVAL_P(result)); RETURN_FALSE; } - msqlFieldSeek(msql_result,Z_LVAL_P(offset)); + msqlFieldSeek(msql_result, offset); RETURN_TRUE; } /* }}} */ @@ -1305,26 +1215,27 @@ */ static void php_msql_field_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type) { - zval *result, *field; + zval *result; + long field; m_result *msql_result; m_field *msql_field; m_query *msql_query; - if (ZEND_NUM_ARGS()!=2 || zend_get_parameters(ht, 2, &result, &field)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &result, &field) == FAILURE) { + return; } - + MSQL_GET_QUERY(result); if(!msql_result) { RETURN_FALSE; } - convert_to_long(field); - if (Z_LVAL_P(field)<0 || Z_LVAL_P(field)>=msqlNumFields(msql_result)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING,"Field %ld is invalid for mSQL query index %ld", Z_LVAL_P(field), Z_LVAL_P(result)); + + if (field < 0 || field >= msqlNumFields(msql_result)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field %ld is invalid for mSQL query index %ld", field, Z_RESVAL_P(result)); RETURN_FALSE; } - msqlFieldSeek(msql_result,Z_LVAL_P(field)); - if ((msql_field=msqlFetchField(msql_result))==NULL) { + msqlFieldSeek(msql_result, field); + if ((msql_field = msqlFetchField(msql_result)) == NULL) { RETURN_FALSE; } @@ -1437,8 +1348,8 @@ m_result *msql_result; m_query *msql_query; - if (ZEND_NUM_ARGS()!=1 || zend_get_parameters(ht, 1, &result)==FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &result) == FAILURE) { + return; } MSQL_GET_QUERY(result); @@ -1455,9 +1366,10 @@ m_result *msql_result; m_query *msql_query; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters(ht, 1, &result) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &result) == FAILURE) { + return; } + MSQL_GET_QUERY(result); RETVAL_LONG(msql_query->af_rows); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php