我试图简单地用动态变量更新一个表,我卡住了,我已经阅读和搜索如何做动态绑定,并发现我需要使用call_user_func_array()
但我试图使用它如下,它仍然不起作用,有人可以告诉我如何使用它?call_user_func_array()用法mysqli
$a = array('ssi');
$b = array($_POST['h'], $_POST['m'], 2);
$params = array_merge($a, $b);
$stmt = $db->prepare("UPDATE `test` set field_1 = ?, field_2 = ? where id = ?");
call_user_func_array(array(&$stmt, 'bind_param'), $params);
$stmt->execute();
我提示以下错误:
Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
有人可以帮我吗?我看过其他类似的问题,但仍然停滞不前。
'的var_dump($语句);'PS:你为什么把'&''在$ stmt'的面前? – zerkms 2014-10-06 22:57:32
你在调用call_user_func_array()中的参数吗? http://php.net/manual/en/function.call-user-func-array.php说,第一个参数应该是要调用的函数名称(bind_param),然后是一个(引用)函数数组作为第二个参数的参数。 – cjs1978 2014-10-06 23:00:42
你看过其他类似的问题吗?为什么你坚持使用'mysqli',然后,如果PDO避免这种解决方法? – mario 2014-10-06 23:01:57