Skip to content

Commit d77e839

Browse files
committed
Change fetch functions and protos so they make more sense.
fetch_row or fetch_assoc should not take the optional parameter
1 parent d7e14ad commit d77e839

File tree

3 files changed

+29
-21
lines changed

3 files changed

+29
-21
lines changed

ext/fbsql/php_fbsql.c

+17-13
Original file line numberDiff line numberDiff line change
@@ -358,14 +358,14 @@ static void phpfbQuery(INTERNAL_FUNCTION_PARAMETERS, char* sql, PHPFBLink* link)
358358
/* {{{ PHP_INI
359359
*/
360360
PHP_INI_BEGIN()
361-
STD_PHP_INI_BOOLEAN ("fbsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateLong, allowPersistent, zend_fbsql_globals, fbsql_globals)
362-
STD_PHP_INI_BOOLEAN ("fbsql.generate_warnings", "0", PHP_INI_SYSTEM, OnUpdateLong, generateWarnings, zend_fbsql_globals, fbsql_globals)
363-
STD_PHP_INI_BOOLEAN ("fbsql.autocommit", "1", PHP_INI_SYSTEM, OnUpdateLong, autoCommit, zend_fbsql_globals, fbsql_globals)
364-
STD_PHP_INI_ENTRY_EX ("fbsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, maxPersistent, zend_fbsql_globals, fbsql_globals, display_link_numbers)
365-
STD_PHP_INI_ENTRY_EX ("fbsql.max_links", "128", PHP_INI_SYSTEM, OnUpdateLong, maxLinks, zend_fbsql_globals, fbsql_globals, display_link_numbers)
366-
STD_PHP_INI_ENTRY_EX ("fbsql.max_connections", "128", PHP_INI_SYSTEM, OnUpdateLong, maxConnections, zend_fbsql_globals, fbsql_globals, display_link_numbers)
367-
STD_PHP_INI_ENTRY_EX ("fbsql.max_results", "128", PHP_INI_SYSTEM, OnUpdateLong, maxResults, zend_fbsql_globals, fbsql_globals, display_link_numbers)
368-
STD_PHP_INI_ENTRY_EX ("fbsql.batchSize", "1000", PHP_INI_SYSTEM, OnUpdateLong, batchSize, zend_fbsql_globals, fbsql_globals, display_link_numbers)
361+
STD_PHP_INI_BOOLEAN ("fbsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allowPersistent, zend_fbsql_globals, fbsql_globals)
362+
STD_PHP_INI_BOOLEAN ("fbsql.generate_warnings", "0", PHP_INI_SYSTEM, OnUpdateBool, generateWarnings, zend_fbsql_globals, fbsql_globals)
363+
STD_PHP_INI_BOOLEAN ("fbsql.autocommit", "1", PHP_INI_SYSTEM, OnUpdateBool, autoCommit, zend_fbsql_globals, fbsql_globals)
364+
STD_PHP_INI_ENTRY_EX ("fbsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, maxPersistent, zend_fbsql_globals, fbsql_globals, display_link_numbers)
365+
STD_PHP_INI_ENTRY_EX ("fbsql.max_links", "128", PHP_INI_SYSTEM, OnUpdateLong, maxLinks, zend_fbsql_globals, fbsql_globals, display_link_numbers)
366+
STD_PHP_INI_ENTRY_EX ("fbsql.max_connections", "128", PHP_INI_SYSTEM, OnUpdateLong, maxConnections, zend_fbsql_globals, fbsql_globals, display_link_numbers)
367+
STD_PHP_INI_ENTRY_EX ("fbsql.max_results", "128", PHP_INI_SYSTEM, OnUpdateLong, maxResults, zend_fbsql_globals, fbsql_globals, display_link_numbers)
368+
STD_PHP_INI_ENTRY_EX ("fbsql.batchSize", "1000", PHP_INI_SYSTEM, OnUpdateLong, batchSize, zend_fbsql_globals, fbsql_globals, display_link_numbers)
369369
STD_PHP_INI_ENTRY ("fbsql.default_host", NULL, PHP_INI_SYSTEM, OnUpdateString, hostName, zend_fbsql_globals, fbsql_globals)
370370
STD_PHP_INI_ENTRY ("fbsql.default_user", "_SYSTEM", PHP_INI_SYSTEM, OnUpdateString, userName, zend_fbsql_globals, fbsql_globals)
371371
STD_PHP_INI_ENTRY ("fbsql.default_password", "", PHP_INI_SYSTEM, OnUpdateString, userPassword, zend_fbsql_globals, fbsql_globals)
@@ -2706,23 +2706,23 @@ PHP_FUNCTION(fbsql_num_fields)
27062706
Fetch a row of data. Returns an indexed array */
27072707
PHP_FUNCTION(fbsql_fetch_row)
27082708
{
2709-
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_NUM);
2709+
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_NUM, 1);
27102710
}
27112711
/* }}} */
27122712

27132713
/* {{{ proto object fbsql_fetch_assoc(resource result)
27142714
Detch a row of data. Returns an assoc array */
27152715
PHP_FUNCTION(fbsql_fetch_assoc)
27162716
{
2717-
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_ASSOC);
2717+
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_ASSOC, 1);
27182718
}
27192719
/* }}} */
27202720

27212721
/* {{{ proto object fbsql_fetch_object(resource result [, int result_type])
27222722
Fetch a row of data. Returns an object */
27232723
PHP_FUNCTION(fbsql_fetch_object)
27242724
{
2725-
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_ASSOC);
2725+
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_ASSOC, 2);
27262726
if (Z_TYPE_P(return_value)==IS_ARRAY) {
27272727
object_and_properties_init(return_value, ZEND_STANDARD_CLASS_DEF_PTR, Z_ARRVAL_P(return_value));
27282728
}
@@ -2733,7 +2733,7 @@ PHP_FUNCTION(fbsql_fetch_object)
27332733
Fetches a result row as an array (associative, numeric or both)*/
27342734
PHP_FUNCTION(fbsql_fetch_array)
27352735
{
2736-
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_BOTH);
2736+
php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, FBSQL_BOTH, 2);
27372737
}
27382738
/* }}} */
27392739

@@ -2781,7 +2781,7 @@ static void _parse_list(zval** return_value, FBCPList* list)
27812781
}
27822782
}
27832783

2784-
static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
2784+
static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, int expected_args)
27852785
{
27862786

27872787
PHPFBResult* result = NULL;
@@ -2790,6 +2790,10 @@ static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
27902790
int i;
27912791
void **row;
27922792

2793+
if (ZEND_NUM_ARGS() > expected_args) {
2794+
WRONG_PARAM_COUNT;
2795+
}
2796+
27932797
switch (ZEND_NUM_ARGS()) {
27942798
case 1:
27952799
if (zend_get_parameters_ex(1, &fbsql_result_index)==FAILURE) {

ext/fbsql/php_fbsql.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ PHP_FUNCTION(fbsql_warnings);
101101
PHP_FUNCTION(fbsql_get_autostart_info);
102102
/* PHP_FUNCTION(fbsql_set_autostart_info); */
103103

104-
static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type);
104+
static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, int expected_args);
105105
static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent);
106106

107107
ZEND_BEGIN_MODULE_GLOBALS(fbsql)

ext/mssql/php_mssql.c

+11-7
Original file line numberDiff line numberDiff line change
@@ -1262,12 +1262,16 @@ PHP_FUNCTION(mssql_num_fields)
12621262

12631263
/* }}} */
12641264

1265-
static void php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
1265+
static void php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, int expected_args)
12661266
{
12671267
zval **mssql_result_index, **resulttype = NULL;
12681268
mssql_result *result;
12691269
int i;
12701270

1271+
if (ZEND_NUM_ARGS() > expected_args) {
1272+
WRONG_PARAM_COUNT;
1273+
}
1274+
12711275
switch (ZEND_NUM_ARGS()) {
12721276
case 1:
12731277
if (zend_get_parameters_ex(1, &mssql_result_index)==FAILURE) {
@@ -1355,11 +1359,11 @@ static void php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
13551359
result->cur_row++;
13561360
}
13571361

1358-
/* {{{ proto array mssql_fetch_row(resource result_id [, int result_type])
1362+
/* {{{ proto array mssql_fetch_row(resource result_id)
13591363
Returns an array of the current row in the result set specified by result_id */
13601364
PHP_FUNCTION(mssql_fetch_row)
13611365
{
1362-
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_NUM);
1366+
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_NUM, 1);
13631367
}
13641368

13651369
/* }}} */
@@ -1368,7 +1372,7 @@ PHP_FUNCTION(mssql_fetch_row)
13681372
Returns a psuedo-object of the current row in the result set specified by result_id */
13691373
PHP_FUNCTION(mssql_fetch_object)
13701374
{
1371-
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_ASSOC);
1375+
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_ASSOC, 2);
13721376
if (Z_TYPE_P(return_value)==IS_ARRAY) {
13731377
object_and_properties_init(return_value, ZEND_STANDARD_CLASS_DEF_PTR, Z_ARRVAL_P(return_value));
13741378
}
@@ -1380,16 +1384,16 @@ PHP_FUNCTION(mssql_fetch_object)
13801384
Returns an associative array of the current row in the result set specified by result_id */
13811385
PHP_FUNCTION(mssql_fetch_array)
13821386
{
1383-
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_BOTH);
1387+
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_BOTH, 2);
13841388
}
13851389

13861390
/* }}} */
13871391

1388-
/* {{{ proto array mssql_fetch_assoc(resource result_id [, int result_type])
1392+
/* {{{ proto array mssql_fetch_assoc(resource result_id)
13891393
Returns an associative array of the current row in the result set specified by result_id */
13901394
PHP_FUNCTION(mssql_fetch_assoc)
13911395
{
1392-
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_ASSOC);
1396+
php_mssql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MSSQL_ASSOC, 1);
13931397
}
13941398

13951399
/* }}} */

0 commit comments

Comments
 (0)