call_user_func_array()用法mysqli

时间:2014-10-06 22:55:02

标签: php mysqli

我试图简单地用动态变量更新表格而且我被卡住了,我已经阅读并搜索了如何进行动态绑定并且发现我需要使用call_user_func_array()但是我试图使用它如下,它仍然无法正常工作,有人可以告诉我如何使用它吗?

$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
有人可以帮帮我吗?我看过其他类似的问题但仍然坚持。

1 个答案:

答案 0 :(得分:1)

这有什么问题?

$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$params = array($_POST['h'], $_POST['m'],  2);

$stmt = $db->prepare("UPDATE `test` set field_1 = ?, field_2 = ? where id = ?");

$stmt->execute($data);

或者,如果你坚持使用mysqli:

$db = new mysqli($host, $user, $pass, $dbname);

$stmt = $db->prepare("UPDATE `test` set field_1 = ?, field_2 = ? where id = ?");

$stmt->bind_param("ssi", $_POST['h'], $_POST['m'],  2);

$stmt->execute();