php - 如果新值在数组中,如何批量更新数据库?php
问题描述
我正在尝试为编辑功能的多条记录执行 UPDATE 语句。该页面有多行需要更新。如果传递的参数是数组,我不确定如何构造语句。
arr_items[[arr_items2]] </br>
arr_items[[value1, value2, value3, value4], [value1, value2, value3, value4]]
我也尝试了不同的 bind_param,但它不起作用。
编辑-view.php
$dao5->modify($arr_items)
DAO.php
public function modify($arr_items) {
$sql = 'update table set
column3=:???(supposedly value3)
column4=:???(supposedly value4)
where column1=:???(supposedly value1) and column2=:???(supposedly value2);
$values = $arr_items;
for ($i=0; $i < count($values); $i++){
$stmt = $conn->prepare($sql);
}
$connMgr = new ConnectionManager();
$conn = $connMgr->getConnection();
call_user_func_array(array($stmt, 'bind_param'), $values);
$stmt->execute();
}
错误消息:```未捕获的错误:在 C 中调用 null 上的成员函数 prepare():
解决方案
实验后,sql 应该如下所示,并在语句中循环以修改每条记录。
$sql = 'update table set column3=:value3, column4=:value4 where column1=:value1 and column2=:value2 ';
$values = $arr_items;
for ($i=0; $i<count($values); $i++){
$query_p = array(':value3'=> $arr_items[$i][2], ':value4' => $arr_items[$i][3], ':value1' => $arr_items[$i][0], ':value2' => $arr_items[$i][1]);
$stmt->execute($query_p);
}
推荐阅读
- reactjs - react native redux dispatch outside component is not trigger componentWillReceiveProps
- python - 如何连接到在 docker 实例中运行的 spark
- java - Java 连接到 MySql 数据库,NullPointerException
- jena - 在 .ttl 文件中定义自定义术语并上传它由 Fuseki 扩展,默认前缀包含 localhost
- reactjs - 如何以新类(扩展组件)格式正确格式化 JSX
- wordpress - 仅限制 Woocommerce 上传的特定文件类型 (Wordpress)
- javascript - 推送到数组中的多维对象
- android - ionic 3 app firebase 在浏览器上工作但不在设备上
- aws-api-gateway - API 网关 Cognito 用户池授权者 - 401 未授权
- python - PyQt5 QML 调试已启用,qmljsdebugger 选项不执行任何操作