if (instanceof_function(intern->zo.ce, mysqli_link_class_entry TSRMLS_CC)) {
if (my_res && my_res->ptr) {
MY_MYSQL *mysql = (MY_MYSQL *)my_res->ptr;
-
if (mysql->mysql) {
mysql_close(mysql->mysql);
}
-
php_clear_mysql(mysql);
efree(mysql);
-
my_res->ptr = NULL;
}
- } else if (intern->zo.ce == mysqli_stmt_class_entry) { /* stmt object */
+ } else if (instanceof_function(intern->zo.ce, mysqli_stmt_class_entry TSRMLS_CC)) { /* stmt object */
if (my_res && my_res->ptr) {
- php_clear_stmt_bind((MY_STMT *)my_res->ptr);
+ MY_STMT *stmt = (MY_STMT *)my_res->ptr;
+ php_clear_stmt_bind(stmt);
}
- } else if (intern->zo.ce == mysqli_result_class_entry) { /* result object */
+ } else if (instanceof_function(intern->zo.ce, mysqli_result_class_entry TSRMLS_CC)) { /* stmt object */
if (my_res && my_res->ptr) {
mysql_free_result(my_res->ptr);
}
- } else if (intern->zo.ce == mysqli_warning_class_entry) { /* warning object */
+ } else if (instanceof_function(intern->zo.ce, mysqli_warning_class_entry TSRMLS_CC)) { /* stmt object */
if (my_res && my_res->ptr) {
php_clear_warnings((MYSQLI_WARNING *)my_res->info);
}
* Every user visible function must have an entry in mysqli_result_functions[].
*/
function_entry mysqli_result_methods[] = {
+ PHP_FALIAS(mysqli_result, mysqli_result_construct, NULL)
PHP_FALIAS(close,mysqli_free_result,NULL)
PHP_FALIAS(free,mysqli_free_result,NULL)
PHP_FALIAS(data_seek,mysqli_data_seek,NULL)
* Every user visible function must have an entry in mysqli_stmt_functions[].
*/
function_entry mysqli_stmt_methods[] = {
+ PHP_FALIAS(mysqli_stmt, mysqli_stmt_construct, NULL)
PHP_FALIAS(attr_get,mysqli_stmt_attr_get,NULL)
PHP_FALIAS(attr_set,mysqli_stmt_attr_set,NULL)
PHP_FALIAS(bind_param,mysqli_stmt_bind_param,second_arg_force_by_ref_rest)
include "connect.inc";
/*** test mysqli_connect 127.0.0.1 ***/
- $link = mysqli_connect($host, $user, $passwd);
+ $link = mysqli_connect($host, $user, $passwd, "test");
- mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_result");
mysqli_query($link,"CREATE TABLE test_bind_result(c1 date, c2 time,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 int unsigned,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 tinyint,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 bigint default 5,
[4]=>
int(0)
[5]=>
- string(13) "-333333333333"
+ int(0)
[6]=>
int(100)
}
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_result");
mysqli_query($link,"CREATE TABLE test_bind_result(c1 date, c2 time,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 int unsigned,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 tinyint,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 varchar(10), c2 text)");
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_fetch");
mysqli_query($link,"CREATE TABLE test_fetch(c1 smallint unsigned,
include "connect.inc";
$mysql = new mysqli($host, $user, $passwd);
+ mysqli_query($mysql, "SET sql_mode=''");
$esc_str = chr(0xbf) . chr(0x5c);
/*** test mysqli_connect 127.0.0.1 ***/
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
+ mysqli_query($link, "SET sql_mode=''");
/* two fields are needed. the problem does not occur with 1 field only selected. */
$link->query("CREATE TABLE test_users(user_id int(10) unsigned NOT NULL auto_increment, login varchar(50) default '', PRIMARY KEY (user_id))");
--- /dev/null
+--TEST--
+Bug #32405
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+ include ("connect.inc");
+
+ class my_stmt extends mysqli_stmt
+ {
+ public function __construct($link, $query) {
+ parent::__construct($link, $query);
+ }
+ }
+
+ class my_result extends mysqli_result
+ {
+ public function __construct($link, $query) {
+ parent::__construct($link, $query);
+ }
+ }
+
+ /*** test mysqli_connect 127.0.0.1 ***/
+ $link = mysqli_connect($host, $user, $passwd);
+ mysqli_query($link, "SET sql_mode=''");
+
+ $stmt = new my_stmt($link, "SELECT 'foo' FROM DUAL");
+
+ $stmt->execute();
+ $stmt->bind_result($var);
+ $stmt->fetch();
+
+ $stmt->close();
+ var_dump($var);
+
+ mysqli_real_query($link, "SELECT 'bar' FROM DUAL");
+ $result = new my_result($link, MYSQLI_STORE_RESULT);
+ $row = $result->fetch_row();
+ $result->close();
+
+ var_dump($row[0]);
+
+ mysqli_close($link);
+?>
+--EXPECT--
+string(3) "foo"
+string(3) "bar"