这是关于mysql pdo更新语法的另一个问题。我已经在以前的问题中搜索了不同的资源,例如Stackoverflow,但仍然无法让我的查询工作!需要一些帮助。
$allowed = array("col1","col2","col3");
$values = $_POST['id'];
$sql = "UPDATE mytable SET ".pdoSet($allowed,$values)." WHERE
id=?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$values]);
更新#1。
添加了我的pdoSet()函数;
很少编辑过的代码片段,特别是在查询中更改了id =:id部分。
function pdoSet($allowed, &$values) {
$set = '';
$values = array();
foreach ($allowed as $field) {
$set.="`".str_replace("`","``",$field)."`". "=:$field, ";
}
return substr($set, 0, -2);
}
$allowed = array("col1","col2","col3");
$values["id"] = $_POST['id'];
$sql = "UPDATE mytable SET ".pdoSet($allowed,$values)." WHERE id=:id";
$stmt = $pdo->prepare($sql);
$stmt->execute($values);