如何使用PDO更新数据库?

时间:2016-08-29 19:00:48

标签: php pdo

我做了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);
}

1 个答案:

答案 0 :(得分:2)

您的数组键需要与占位符具有相同的格式。

$params = array(
        ':item_id' => $item_id,
        ':id' => $id,
        ':gp' => $gp,
        ':group_id' => $groupid,
        ':type' => $type
    );

根据我写完后立即学到的东西,不需要冒号 。我设置了一个包含所有相同列名的表,并且您的确切代码在没有它们的情况下为我工作。所以,我真的不确定为什么这似乎解决了这个问题。