mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Fix for bug#50772
mysqli constructor without parameters does not return a working mysqli object
This commit is contained in:
parent
db8a6974fb
commit
6407250e70
@ -1333,9 +1333,9 @@ PHP_FUNCTION(mysqli_info)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto resource mysqli_init(void)
|
||||
Initialize mysqli and return a resource for use with mysql_real_connect */
|
||||
PHP_FUNCTION(mysqli_init)
|
||||
|
||||
/* {{{ php_mysqli_init() */
|
||||
void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS)
|
||||
{
|
||||
MYSQLI_RESOURCE *mysqli_resource;
|
||||
MY_MYSQL *mysql;
|
||||
@ -1372,6 +1372,15 @@ PHP_FUNCTION(mysqli_init)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/* {{{ proto resource mysqli_init(void)
|
||||
Initialize mysqli and return a resource for use with mysql_real_connect */
|
||||
PHP_FUNCTION(mysqli_init)
|
||||
{
|
||||
php_mysqli_init(INTERNAL_FUNCTION_PARAM_PASSTHRU);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto mixed mysqli_insert_id(object link)
|
||||
Get the ID generated from the previous INSERT operation */
|
||||
PHP_FUNCTION(mysqli_insert_id)
|
||||
|
@ -80,7 +80,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
||||
#endif
|
||||
|
||||
if (getThis() && !ZEND_NUM_ARGS() && in_ctor) {
|
||||
RETURN_NULL();
|
||||
php_mysqli_init(INTERNAL_FUNCTION_PARAM_PASSTHRU);
|
||||
return;
|
||||
}
|
||||
hostname = username = dbname = passwd = socket = NULL;
|
||||
|
||||
|
@ -338,6 +338,8 @@ if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) && mysql_stmt_errno(stmt)) { \
|
||||
|
||||
void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_connect, zend_bool in_ctor);
|
||||
|
||||
void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS);
|
||||
|
||||
|
||||
ZEND_BEGIN_MODULE_GLOBALS(mysqli)
|
||||
long default_link;
|
||||
|
36
ext/mysqli/tests/bug50772.phpt
Normal file
36
ext/mysqli/tests/bug50772.phpt
Normal file
@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #50772 (mysqli constructor without parameters does not return a working mysqli object)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
require_once('skipif.inc');
|
||||
require_once('skipifconnectfailure.inc');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
include "connect.inc";
|
||||
$db1 = new mysqli();
|
||||
|
||||
// These calls fail
|
||||
$db1->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||
$db1->real_connect($host, $user, $passwd);
|
||||
if(mysqli_connect_error()) {
|
||||
echo "error 1\n";
|
||||
} else {
|
||||
echo "ok 1\n";
|
||||
}
|
||||
|
||||
$db2 = mysqli_init();
|
||||
|
||||
$db2->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);
|
||||
$db2->real_connect($host, $user, $passwd);
|
||||
if(mysqli_connect_error()) {
|
||||
echo "error 2\n";
|
||||
} else {
|
||||
echo "ok 2\n";
|
||||
}
|
||||
echo "done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
ok 1
|
||||
ok 2
|
||||
done
|
Loading…
Reference in New Issue
Block a user