} else {
ZVAL_STRINGL(res, row[i], field_len[i], 1);
}
-
+ if (m
if (fetchtype & MYSQLI_NUM) {
add_index_zval(return_value, i, res);
}
PHP_FUNCTION(mysqli_init)
{
MYSQLI_RESOURCE *mysqli_resource;
- MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
+ MY_MYSQL *mysql;
+
+ if (getThis() && instanceof_function(Z_OBJCE_P(getThis()), mysqli_link_class_entry TSRMLS_CC)) {
+ return;
+ }
+
+ mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
#if !defined(MYSQLI_USE_MYSQLND)
if (!(mysql->mysql = mysql_init(NULL)))
--- /dev/null
+--TEST--
+Bug #46109 (MySQLi::init - Memory leaks)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+ include "connect.inc";
+
+ $mysqli = new mysqli();
+ $mysqli->init();
+ $mysqli->init();
+ echo "done";
+?>
+--EXPECTF--
+done