Код PHP работает, но правильно ли?
Хорошо что ты спросил.
Попробуем посчитать ошибки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()
UPDATE posts SET counter = counter + 1 WHERE id=... - вроде, mysql так умеет. Нет кода под рукой где такое встречал :-(