我做了print_r($params);
,每一个价值都来了。由于某种原因,它没有更新数据库。
Select语句适用于我的其他PDO语句,我可以使用mysql更新项目,但我正在将它们升级到PDO(例如此语句)。
我的语法有什么问题吗?
$getData = new Data();
$gptest = $getData -> insert_group_id($item_id, $id, $gp, $groupid, $type);
Data()类包括:
function insert_group_id($item_id, $id, $gp, $groupid, $type) {
$params = array(
'item_id' => $item_id,
'id' => $id,
'gp' => $gp,
'group_id' => $groupid,
'type' => $type
);
$qry = "UPDATE actions_item
SET gp = :gp ,
group_id = :group_id ,
type = :type
WHERE itemID = :item_id
AND itemVID = :id
";
return $this->update($qry, $params);
}
protected function update($sql, $params)
{
$stmt = $this->dbh->prepare($sql);
return $stmt->execute($params);
}
答案 0 :(得分:2)
您的数组键需要与占位符具有相同的格式。
$params = array(
':item_id' => $item_id,
':id' => $id,
':gp' => $gp,
':group_id' => $groupid,
':type' => $type
);
根据我写完后立即学到的东西,不需要冒号 。我设置了一个包含所有相同列名的表,并且您的确切代码在没有它们的情况下为我工作。所以,我真的不确定为什么这似乎解决了这个问题。