1. Кто такой этот "ни" и что такое "чего", что он не трогал?
2. Где определена константа id?
3. Зачем в execute передаётся параметр id, которого нет в запросе?
4. Что выдаёт этот запрос в консоли?
не будет видеть содержимое вашего трафика, включая доменное имя сервера,
SNI (Server_Name_Indication). В HTTPS имя домена передаётся в открытом виде при инициации соединения, чтобы сервер знал, какой сертификат предъявить клиенту. На одном IP:Port может работать несколько серверов с разными именами и, соответственно, разными сертификатами.
Выбросьте каку. Она не умеет работать по SSL/TLS, и некорректно формирует заголовки - не учитывает ограничение длины строки в SMTP (1000 октетов, включая CRLF, рекомендуется 78 октетов). Пользуйтесь нормальным PHPMailer.
TtT RrR, IMHO, данные в JSON стоит использовать только если БД используется просто для хранения этих данных. Если нужен поиск по ним, какая-то аналитика, то JSON добавляет больше проблем, чем даёт каких-либо плюсов.
Alexey Gergert, И как тогда сервер будет открывать сокет на этом адресе? А никак. Вы должны на роутере настроить проброс порта на сервер, а на сервере открыть сокет на IP-адресе сервера.