Хорошо что ты спросил.
Попробуем посчитать ошибки
- SQL инъекция (в реальном, а не игрушечном коде)
- пропуски в подсчетах. (пока ты в скрипте прибавлял, там уже двое прибавили, а ты обратно только +1 перезаписал)
- избыточный код.
- отсутствие информации об ошибках.
- Дублирование кода.
Попробуем решить эти проблемы.
$sql = "UPDATE post SET counter=counter+1 WHERE id=?";
$pdo->prepare->($sql)->execute([$id]);
$stm = $pdo->prepare("SELECT counter FROM post WHERE id=1");
$stm->execute([$id]);
echo $stm->fetchColumn()