Когда ты НЕ ЗНАЕШЬ что происходит у тебя в коде, во первых надо понять что и зачем ты пишешь, иначе это обезьянье тыканье в клавиатуру ни к чему не приведет в обозримом будущем. Прогресса не будет.
Во первых - запросы выделить отдельно в переменные.
Во вторых - вместо тупого "вставляния" переменных в запрос использовать плейсхолдеры, иначе будете страдать, и за дело. Разве так сложно все нужные параметры записать в массив ключ-значение и передать в запрос???
В третьих - читать ошибки, понимать синтаксис. В идеале - нормально расписывать запрос в коде. Хотя я рекомендую всегда его писать в принятом построчном формате, это всегда удобно и наглядно:
$sql = "
INSERT INTO `cards`
(`name`, `title`, `p`, `tel`,`email`, `money`, `subject`)
VALUES
(:name, :title, :p, :tel, :email, :money, :subject";
Надеюсь ошибка видна?