cvs: /php4 ChangeLog /php4/ext/mysql mysql.c
| From: | Zeev Suraski | Date: | Fri, 03 Sep 1999 19:13:38 +0000 |
| Subject: | cvs: /php4 ChangeLog /php4/ext/mysql mysql.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4059@lists.php.net to get a copy of this message | ||
zeev Fri Sep 3 15:13:38 1999 EDT
Modified files:
/php4 ChangeLog
/php4/ext/mysql mysql.c
Log:
Use the new API for resources in MySQL
Index: php4/ChangeLog
diff -u php4/ChangeLog:1.79 php4/ChangeLog:1.80
--- php4/ChangeLog:1.79 Fri Sep 3 13:46:38 1999
+++ php4/ChangeLog Fri Sep 3 15:13:37 1999
@@ -2,15 +2,14 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ?? 1999, Version 4.0 Beta 3
+- Improved the resource mechanism - resources were not getting freed as soon
+ as they could (Zeev)
- Added shared memory module for session data storage (Sascha)
- Fixed session.auto_start (Sascha)
- Fixed several problems with output buffering and HEAD requests (Zeev)
- Fixed HTTP Status code issue with ISAPI module (Zeev)
- Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend
library)
-- Fixed the a problem in the resource reference counting mechanism, that
- caused resources to be freed much later than they were supposed to (Zeev,
- Zend library)
- Ported newest GetImageSize (Thies)
- Added session compile support in Win32 (Andi)
- Added -d switch to the CGI binary that allows overriding php.ini values
Index: php4/ext/mysql/mysql.c
diff -u php4/ext/mysql/mysql.c:1.21 php4/ext/mysql/mysql.c:1.22
--- php4/ext/mysql/mysql.c:1.21 Fri Sep 3 13:13:53 1999
+++ php4/ext/mysql/mysql.c Fri Sep 3 15:13:37 1999
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql.c,v 1.21 1999/09/03 17:13:53 gorgo Exp $ */
+/* $Id: mysql.c,v 1.22 1999/09/03 19:13:37 zeev Exp $ */
/* TODO:
@@ -633,8 +633,8 @@
Close a MySQL connection */
PHP_FUNCTION(mysql_close)
{
- pval *mysql_link;
- int id,type;
+ pval *mysql_link=NULL;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
@@ -646,19 +646,15 @@
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
php3_list_delete(id);
RETURN_TRUE;
@@ -671,7 +667,7 @@
PHP_FUNCTION(mysql_select_db)
{
pval *db,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
@@ -681,26 +677,22 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 2:
if (getParameters(ht, 2, &db, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- CHECK_LINK(id);
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(db);
@@ -718,7 +710,7 @@
PHP_FUNCTION(mysql_create_db)
{
pval *db,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
@@ -728,27 +720,22 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 2:
if (getParameters(ht, 2, &db, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- CHECK_LINK(id);
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
-
convert_to_string(db);
if (mysql_create_db(mysql,db->value.str.val)==0) {
RETURN_TRUE;
@@ -764,7 +751,7 @@
PHP_FUNCTION(mysql_drop_db)
{
pval *db,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
@@ -774,26 +761,22 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 2:
if (getParameters(ht, 2, &db, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- CHECK_LINK(id);
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(db);
if (mysql_drop_db(mysql,db->value.str.val)==0) {
@@ -810,7 +793,7 @@
PHP_FUNCTION(mysql_query)
{
pval *query,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
@@ -821,24 +804,21 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 2:
if (getParameters(ht, 2, &query, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(query);
/* mysql_query binary unsafe, use mysql_real_query */
@@ -868,7 +848,7 @@
PHP_FUNCTION(mysql_db_query)
{
pval *db,*query,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
@@ -879,26 +859,21 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 3:
if (getParameters(ht, 3, &db, &query, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
-
- CHECK_LINK(id);
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(db);
if (mysql_select_db(mysql,db->value.str.val)!=0) {
@@ -934,7 +909,7 @@
PHP_FUNCTION(mysql_list_dbs)
{
pval *mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
@@ -942,26 +917,22 @@
switch(ARG_COUNT(ht)) {
case 0:
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 1:
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
-
- CHECK_LINK(id);
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
+
if ((mysql_result=mysql_list_dbs(mysql,NULL))==NULL) {
php_error(E_WARNING,"Unable to save MySQL query result");
RETURN_FALSE;
@@ -977,7 +948,7 @@
PHP_FUNCTION(mysql_list_tables)
{
pval *db,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
@@ -988,26 +959,21 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 2:
if (getParameters(ht, 2, &db, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
- }
-
- CHECK_LINK(id);
-
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
}
+
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(db);
if (mysql_select_db(mysql,db->value.str.val)!=0) {
@@ -1028,7 +994,7 @@
PHP_FUNCTION(mysql_list_fields)
{
pval *db,*table,*mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MYSQL_RES *mysql_result;
MySLS_FETCH();
@@ -1039,26 +1005,21 @@
RETURN_FALSE;
}
id = php3_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
+ CHECK_LINK(id);
break;
case 3:
if (getParameters(ht, 3, &db, &table, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
- }
-
- CHECK_LINK(id);
-
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
}
+
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
convert_to_string(db);
if (mysql_select_db(mysql,db->value.str.val)!=0) {
@@ -1080,34 +1041,30 @@
PHP_FUNCTION(mysql_error)
{
pval *mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
id = MySG(default_link);
+ if (id==-1) {
+ RETURN_FALSE;
+ }
break;
case 1:
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- if (id==-1) {
- RETURN_FALSE;
- }
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
RETURN_STRING(mysql_error(mysql),1);
}
@@ -1120,34 +1077,30 @@
PHP_FUNCTION(mysql_errno)
{
pval *mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
id = MySG(default_link);
+ if (id==-1) {
+ RETURN_FALSE;
+ }
break;
case 1:
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- if (id==-1) {
- RETURN_FALSE;
- }
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
RETURN_LONG(mysql_errno(mysql));
}
@@ -1160,31 +1113,28 @@
PHP_FUNCTION(mysql_affected_rows)
{
pval *mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
id = MySG(default_link);
+ CHECK_LINK(id);
break;
case 1:
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
/* conversion from int64 to long happing here */
return_value->value.lval = (long)mysql_affected_rows(mysql);
@@ -1198,31 +1148,28 @@
PHP_FUNCTION(mysql_insert_id)
{
pval *mysql_link;
- int id,type;
+ int id;
MYSQL *mysql;
MySLS_FETCH();
switch(ARG_COUNT(ht)) {
case 0:
id = MySG(default_link);
+ CHECK_LINK(id);
break;
case 1:
if (getParameters(ht, 1, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
- convert_to_long(mysql_link);
- id = mysql_link->value.lval;
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
- mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=le_link && type!=le_plink) {
- php_error(E_WARNING,"%d is not a MySQL link index",id);
- RETURN_FALSE;
- }
+ mysql = (MYSQL *) zend_fetch_resource_ex(mysql_link, id, "MySQL link", 2, le_link,
le_plink);
+ ZEND_VERIFY_RESOURCE(mysql);
/* conversion from int64 to long happing here */
return_value->value.lval = (long)mysql_insert_id(mysql);
@@ -1239,7 +1186,7 @@
MYSQL_RES *mysql_result;
MYSQL_ROW sql_row;
mysql_row_length_type *sql_row_lengths;
- int type,field_offset=0;
+ int field_offset=0;
PLS_FETCH();
switch (ARG_COUNT(ht)) {
@@ -1257,15 +1204,9 @@
WRONG_PARAM_COUNT;
break;
}
-
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
-
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
convert_to_long(row);
if (row->value.lval<0 || row->value.lval>=(int)mysql_num_rows(mysql_result)) {
php_error(E_WARNING,"Unable to jump to row %d on MySQL result index
%d",row->value.lval,result->value.lval);
@@ -1350,21 +1291,13 @@
{
pval *result;
MYSQL_RES *mysql_result;
- int type;
-
if (ARG_COUNT(ht)!=1 || getParameters(ht, 1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
-
/* conversion from int64 to long happing here */
return_value->value.lval = (long)mysql_num_rows(mysql_result);
return_value->type = IS_LONG;
@@ -1377,21 +1310,13 @@
{
pval *result;
MYSQL_RES *mysql_result;
- int type;
-
if (ARG_COUNT(ht)!=1 || getParameters(ht, 1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
-
return_value->value.lval = mysql_num_fields(mysql_result);
return_value->type = IS_LONG;
}
@@ -1405,7 +1330,6 @@
MYSQL_ROW mysql_row;
MYSQL_FIELD *mysql_field;
mysql_row_length_type *mysql_row_lengths;
- int type;
int num_fields;
int i;
PLS_FETCH();
@@ -1431,13 +1355,8 @@
break;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
-
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
if ((mysql_row=mysql_fetch_row(mysql_result))==NULL
|| (mysql_row_lengths=mysql_fetch_lengths(mysql_result))==NULL) {
RETURN_FALSE;
@@ -1519,20 +1438,13 @@
{
pval *result,*offset;
MYSQL_RES *mysql_result;
- int type;
-
if (ARG_COUNT(ht)!=2 || getParameters(ht, 2, &result, &offset)==FAILURE) {
WRONG_PARAM_COUNT;
}
-
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
convert_to_long(offset);
if (offset->value.lval<0 || offset->value.lval>=(int)mysql_num_rows(mysql_result)) {
php_error(E_WARNING,"Offset %d is invalid for MySQL result index
%d",offset->value.lval,result->value.lval);
@@ -1551,7 +1463,6 @@
pval *result;
MYSQL_RES *mysql_result;
mysql_row_length_type *lengths;
- int type;
int num_fields;
int i;
@@ -1559,14 +1470,9 @@
if (ARG_COUNT(ht)!=1 || getParameters(ht, 1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
}
-
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
if ((lengths=mysql_fetch_lengths(mysql_result))==NULL) {
RETURN_FALSE;
}
@@ -1638,8 +1544,6 @@
pval *result,*field=NULL;
MYSQL_RES *mysql_result;
MYSQL_FIELD *mysql_field;
- int type;
-
switch (ARG_COUNT(ht)) {
case 1:
@@ -1657,13 +1561,8 @@
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
-
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
if (field) {
if (field->value.lval<0 || field->value.lval>=(int)mysql_num_fields(mysql_result)) {
php_error(E_WARNING,"MySQL: Bad field offset");
@@ -1701,20 +1600,13 @@
{
pval *result, *offset;
MYSQL_RES *mysql_result;
- int type;
-
if (ARG_COUNT(ht)!=2 || getParameters(ht, 2, &result, &offset)==FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
-
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
convert_to_long(offset);
if (offset->value.lval<0 || offset->value.lval>=(int)mysql_num_fields(mysql_result)) {
php_error(E_WARNING,"Field %d is invalid for MySQL result index
%d",offset->value.lval,result->value.lval);
@@ -1738,7 +1630,6 @@
pval *result, *field;
MYSQL_RES *mysql_result;
MYSQL_FIELD *mysql_field;
- int type;
char buf[512];
int len;
@@ -1746,14 +1637,8 @@
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
-
convert_to_long(field);
if (field->value.lval<0 || field->value.lval>=(int)mysql_num_fields(mysql_result)) {
php_error(E_WARNING,"Field %d is invalid for MySQL result index
%d",field->value.lval,result->value.lval);
@@ -1911,23 +1796,17 @@
{
pval *result;
MYSQL_RES *mysql_result;
- int type;
if (ARG_COUNT(ht)!=1 || getParameters(ht, 1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(result);
- if (result->value.lval==0) {
+ if (result->type==IS_RESOURCE && result->value.lval==0) {
RETURN_FALSE;
}
-
- mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=le_result) {
- php_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
- RETURN_FALSE;
- }
+ ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
+
php3_list_delete(result->value.lval);
RETURN_TRUE;
}