|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2000, Version 4.0.4
+- Fixed mysql_close(), pg_close(), msql_close() and sybase_close() - they
+ weren't properly closing the SQL connections (Zeev)
- Fixed crypt() to supply random seed if none is given (Andi)
-- Fixed mysql_close() - it wasn't properly closing MySQL connections (Zeev)
- Made print_r support recursive data structures, e.g., $GLOBALS. (Zeev)
- Fixed a bug that caused PHP not to properly flush its output buffer, if more
than one output buffer was used. (Zeev)
ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);
- zend_list_delete(Z_RESVAL_P(msql_link));
- if (Z_RESVAL_P(mysql_link)==msql_globals.default_link) {
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_P(msql_link));
+ }
+
+ if (id!=-1
+ || (msql_link && Z_RESVAL_P(msql_link)==msql_globals.default_link)) {
zend_list_delete(msql_globals.default_link);
+ msql_globals.default_link = -1;
}
- zend_list_delete(id);
RETURN_TRUE;
}
/* }}} */
#define FRM_VER 6
#define MYSQL_VERSION_ID 32322
#define MYSQL_PORT 3306
-#define MYSQL_UNIX_ADDR "/tmp/mysql.sock"
/* mysqld compile time options */
#ifndef MYSQL_CHARSET
PHP_FUNCTION(pg_close)
{
zval **pgsql_link = NULL;
- int id = -1;
+ int id;
PGconn *pgsql;
PGLS_FETCH();
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
RETURN_FALSE;
}
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
- zend_list_delete(Z_RESVAL_PP(pgsql_link));
- if (Z_RESVAL_PP(pgsql_link)==PGG(default_link)) {
+
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_PP(pgsql_link));
+ }
+
+ if (id!=-1
+ || (pgsql_link && Z_RESVAL_PP(pgsql_link)==PGG(default_link))) {
zend_list_delete(PGG(default_link));
+ PGG(default_link) = -1;
}
RETURN_TRUE;
ZEND_FETCH_RESOURCE2(sybase_ptr, sybase_link *, &sybase_link_index, id, "Sybase-Link", le_link, le_plink);
- if (sybase_link_index) {
- zend_list_delete(sybase_link_index->value.lval);
- } else {
- zend_list_delete(id);
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_P(sybase_link_index));
+ }
+
+ if (id!=-1
+ || (sybase_link_index && Z_RESVAL_P(sybase_link_index)==SybCtG(default_link))) {
+ zend_list_delete(SybCtG(default_link));
+ SybCtG(default_link) = -1;
}
RETURN_TRUE;