Если есть смысл, паркуйте самостоятельно. Но скорее всего его нет. Поэтому либо простая парковочная страница (можно добавить сбор статистики), либо разделегирование.
Не используемые долго домены я стараюсь продавать. Иногда получается.
Если речь о паре доменов, можно припарковать и на моем парковочном сервере: https://p20.ru/
Среди "новозон" очень неплохая. Не знаю, откуда взялась упомянутая в теме стоимость годового продления. Даже при нынешней турбулентности цен продление стоит примерно в два раза меньше упомянутой цифры.
Нет особой разницы, токен сохранять или хэш пароля.
Можно ввести ограничение на частоту. Можно просто не запускать процедуру повторно, пока имеющаяся ссылка (для данного адреса e-mail) не устареет.
Вместо возврата null пробрасывайте исключение.
Что в общем может быть причиной ошибки? Попробуйте, как вам выше написали, явно "биндить" в целочисленный тип. Возможно, MySQL не поддерживает PG-синтаксис LIMIT в подготовленных выражениях - попробуйте обычный LIMIT x, y. Про ошибки времени выполнения тоже не стоит забывать.
Проблема из-за возврата null, на этот раз из query(). Зачем вам вообще нужно это значение? Не используете исключения?
Как я понимаю, это ваш query(). У метода PDO другие параметры.
Он предлагает автору настройки, чтобы заставить выполняться html-файлы, не зная и даже не думая малость о последствиях.
В общем типичная картина: автор "захотел", так и не ответив на вопрос "зачем?", и ему сразу же предложили вариант уровня песочницы. Хорошо еще, что эту тему посмотрели более компетентные люди и не поленились в ней отписаться.