ID: 49946 Updated by: u...@php.net Reported By: chris at network-13 dot com Status: Open Bug Type: MySQLi related Operating System: Windows 7 PHP Version: 5.3.0 New Comment:
Sounds like Bogus http://de3.php.net/manual/en/function.call-user-func-array.php -> Note: Referenced variables in param_arr are passed to the function by a reference, others are passed by a value. In other words, it does not depend on the function signature whether the parameter is passed by a value or by a reference. call_user_func_array does call by value and mysqli_stmt_bind_param() is documented to expect variables passed by reference. http://de3.php.net/manual/en/mysqli-stmt.bind-param.php bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) Previous Comments: ------------------------------------------------------------------------ [2009-10-21 15:20:42] chris at network-13 dot com Description: ------------ I tested this on both linux/windows with PHP 5.2.10 and it gave no problems. After updating the windows machine to PHP 5.3.0 it now gives the error. Warning: Parameter 3 to mysqli_stmt_bind_param() expected to be a reference, value given Reproduce code: --------------- <?php class db { public $result; function getresult(){ $connection = mysqli_connect('localhost', 'root', 'password', 'testdb'); $args = func_get_args(); $query = array_shift($args); if(!$connection){ mysqli_connect_error(); exit(); } $sql = mysqli_prepare($connection, $query); $types = str_repeat('s', count($args)); array_unshift($args, $types); array_unshift($args, $sql); call_user_func_array('mysqli_stmt_bind_param', $args); mysqli_stmt_execute($sql); mysqli_stmt_bind_result($sql, $result); mysqli_stmt_fetch($sql); mysqli_close($connection); $this->result = $result; } } $uid = NEW db(); $uid->getresult("SELECT uid FROM testtable WHERE user = ?","Chris"); echo $uid->result; ?> Expected result: ---------------- It should echo the uid of the user. Actual result: -------------- Warning: Parameter 3 to mysqli_stmt_bind_param() expected to be a reference, value given in D:\www\mysqli2.php on line 16 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=49946&edit=1