Как обновить базу данных с помощью 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); } 

Solutions Collecting From Web of "Как обновить базу данных с помощью PDO?"

Клавиши массива должны иметь тот же формат, что и заполнители.

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

Основываясь на том, что я узнал сразу после написания этого, двоеточия не требуются. Я создал таблицу со всеми вашими именами столбцов, и ваш точный код работал для меня без них. Итак, я действительно не знаю, почему это, похоже, решило проблему.