我试图简单地用动态变量更新表格而且我被卡住了,我已经阅读并搜索了如何进行动态绑定并且发现我需要使用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
有人可以帮帮我吗?我看过其他类似的问题但仍然坚持。
答案 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();