Я работаю над школьным проектом по созданию CMS для моего сайта портфолио. У меня возникают проблемы с работой функции обновления. Я чувствую, что это как-то связано с тем, как я строю транзакцию PDO. В моей базе данных есть таблица проектов, таблица категорий и ассоциативная таблица content_category. Я могу вставлять свои проекты в эти таблицы просто отлично. То, что я хочу сделать, это вставить в мою таблицу проектов, затем удалить все записи из таблицы content_category и, наконец, вставить записи текущей категории в эту ассоциативную таблицу для завершения транзакции. Я получил свое возвращаемое заявление "Проект обновлен". Но таблицы не обновляются. Любые идеи кто-нибудь?
Вот код:
Это функция в моем классе Project.
public function update(){
try {
$conn = getConnection();
$conn->beginTransaction();
$sql = "UPDATE project
SET project_title = :title,
project_description = :desc,
project_isFeatured = :feat,
project_mainImage = :image
WHERE project_id = :id";
$st = $conn->prepare($sql);
$st->bindValue(":id", $this->id, PDO::PARAM_INT);
$st->bindValue(":title", $this->title, PDO::PARAM_STR);
$st->bindValue(":desc", $this->description, PDO::PARAM_STR);
$st->bindValue(":feat", $this->isFeatured, PDO::PARAM_BOOL);
$st->bindValue(":image", $this->mainImage, PDO::PARAM_INT);
$st->execute();
$sql = "DELETE from content_category
WHERE content_id = :id";
$st = $conn->prepare($sql);
$st->bindValue("id", $this->id, PDO::PARAM_INT);
$st->execute();
$sql = "INSERT into content_category (content_id, cat_id)
VALUES (?,?)";
$st = $conn->prepare($sql);
foreach($this->categories as $key=>$value){
$st->execute(array(intval($projectID), intval($value)));
}
$conn->commit();
$conn = null;
return "Project updated";
}
catch(Exception $e) {
echo $e->getMessage();
$conn->rollBack();
return "Error... Unable to update!";
}
}