В принципе, вместо этой функции можно написать один большой try catch, буквально перед первой строчкой кода и после последней. Это возможно, если на сайте используется единая точка входа.
Но решение с функцией кажется мне более красивым и гибким.
А писать для каждого запроса - это, конечно, не вариант совсем.
Но если подумать, то запроса два
Сначала селект.
Если рейтинга нет, то инсерт
Если есть, то апдейт. Только не сложение вычитание как у тебя, а установка константы, +1 -1
Это все для него китайская грамота. Ему сейчас важно понять только одно - что вопрос к скрипту через форму ничем технически не отличается от запроса через ссылку.
Все это очень красивые и даже в чем-то правильные слова, но надо только понимать, что при том уровне знаний, который демонстрирует автор, он с этой точкой входа нагородит себе LFI. И вместо воображаемой проблемы поимеет себе реальную дыру, через которую его драгоценный ключ утащит любой школьник
Особенно когда они берутся чужие проблемы решать