diff options
author | Marc Boeren <mboeren@php.net> | 2001-06-12 15:32:22 +0000 |
---|---|---|
committer | Marc Boeren <mboeren@php.net> | 2001-06-12 15:32:22 +0000 |
commit | 92eb51fde2f152c997f371fa5fcf0e3404a76a08 (patch) | |
tree | 2d6cf58878cdce45019d24f6e0dbb8b23a4d548b | |
parent | e8796a150398231c754697772c7ae1222e5d288a (diff) | |
download | php-git-92eb51fde2f152c997f371fa5fcf0e3404a76a08.tar.gz |
Fixed bug concerning mysql default_link that got freed too soon (Mc).
Added the test-case to te connect-test-file (Mc).
-rw-r--r-- | ext/dbx/dbx_mysql.c | 2 | ||||
-rw-r--r-- | ext/dbx/tests/003.phpt | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/ext/dbx/dbx_mysql.c b/ext/dbx/dbx_mysql.c index d11b2accc9..2102d3a734 100644 --- a/ext/dbx/dbx_mysql.c +++ b/ext/dbx/dbx_mysql.c @@ -51,6 +51,7 @@ int dbx_mysql_connect(zval ** rv, zval ** host, zval ** db, zval ** username, zv /* also close connection */ number_of_arguments=1; arguments[0]=&returned_zval; + zend_list_addref(returned_zval->value.lval); dbx_call_any_function(INTERNAL_FUNCTION_PARAM_PASSTHRU, "mysql_close", &select_db_zval, number_of_arguments, arguments); if (select_db_zval) zval_ptr_dtor(&select_db_zval); zval_ptr_dtor(&returned_zval); @@ -88,6 +89,7 @@ int dbx_mysql_pconnect(zval ** rv, zval ** host, zval ** db, zval ** username, z /* also close connection */ number_of_arguments=1; arguments[0]=&returned_zval; + zend_list_addref(returned_zval->value.lval); dbx_call_any_function(INTERNAL_FUNCTION_PARAM_PASSTHRU, "mysql_close", &select_db_zval, number_of_arguments, arguments); if (select_db_zval) zval_ptr_dtor(&select_db_zval); zval_ptr_dtor(&returned_zval); diff --git a/ext/dbx/tests/003.phpt b/ext/dbx/tests/003.phpt index 254b903878..2c5a8ec762 100644 --- a/ext/dbx/tests/003.phpt +++ b/ext/dbx/tests/003.phpt @@ -79,6 +79,19 @@ else { print_r($dlo); dbx_close($dlo); } +$dlo1 = dbx_connect($module, $host, $database, $username, $password); +$dlo2 = dbx_connect($module, $host, $database, $username, $password); +if ($dlo1!=0 && $dlo2!=0) { + print('multiple connects ok'."\n"); + dbx_close($dlo1); + dbx_close($dlo2); + } +$dlo1 = dbx_connect($module, $host, $database, $username, $password); +$dlo2 = dbx_connect($module, $host, $nonexisting_database, $username, $password); +if ($dlo1!=0 && $dlo2==0) { + print('multiple connects (2nd fails on database-name) ok'."\n"); + dbx_close($dlo1); + } ?> --EXPECT-- connect using string ok @@ -90,4 +103,6 @@ persistent connect using constant ok persistent connect to non-existing database failed, so it's ok persistent connect with false username/password combi failed, so it's ok too many parameters: connect failure works ok -too few parameters: connect failure works ok
\ No newline at end of file +too few parameters: connect failure works ok +multiple connects ok +multiple connects (2nd fails on database-name) ok
\ No newline at end of file |