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