summaryrefslogtreecommitdiff
path: root/ext/mysql/php_mysql.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-11-03 01:56:47 +0000
committerZeev Suraski <zeev@php.net>2000-11-03 01:56:47 +0000
commitb20f8b39b9f9326d01fa802df80a5f7a881739b2 (patch)
tree49eaea4c8ad421732b5d7fbe2741d6f157a64f6a /ext/mysql/php_mysql.c
parent76accf4806740ab5166f50f656afc721a9347ff6 (diff)
downloadphp-git-b20f8b39b9f9326d01fa802df80a5f7a881739b2.tar.gz
Fixed mysql_close() - A bit more complicated than I originally thought
Diffstat (limited to 'ext/mysql/php_mysql.c')
-rw-r--r--ext/mysql/php_mysql.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c
index af8cafb301..75d023689c 100644
--- a/ext/mysql/php_mysql.c
+++ b/ext/mysql/php_mysql.c
@@ -603,10 +603,17 @@ PHP_FUNCTION(mysql_close)
}
ZEND_FETCH_RESOURCE2(mysql, MYSQL *, mysql_link, id, "MySQL-Link", le_link, le_plink);
- zend_list_delete(Z_RESVAL_PP(mysql_link));
- if (Z_RESVAL_PP(mysql_link)==MySG(default_link)) {
+
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_PP(mysql_link));
+ }
+
+ if (id!=-1
+ || (mysql_link && Z_RESVAL_PP(mysql_link)==MySG(default_link))) {
zend_list_delete(MySG(default_link));
+ MySG(default_link) = -1;
}
+
RETURN_TRUE;
}
/* }}} */