Ааа ... да, вы не испытаете ничего, кроме боли, если попытаетесь обойти систему маршрутизации, которая уже есть у Concrete5 (к сожалению, в отличие от небольшой боли, работающей внутри нее).
Я настоятельно рекомендую прочитать эти инструкции в их документации:
http://www.concrete5.org/documentation/how-tos/developers/build-a-single-page-powered-editing-interface-for-concrete5/
Когда вы говорите, что вы новичок в PHP, вы новичок в веб-программировании в целом или вы уже знакомы с другими языками и средами MVC? Если последнее, то я предупреждаю, что в вышеприведенной статье происходит действительно ужасная вещь, когда разные представления для действий контроллера находятся в одном файле представления, разделенном большой инструкцией «если». Если это оскорбляет ваши чувства так же, как мои, я нашел способ улучшить эту работу, дайте мне знать, если вы хотите это увидеть. [РЕДАКТИРОВАТЬ: См. https://github.com/jordanlev/c5_boilerplate_crud для лучшей техники. Он работает из коробки на Concrete5.5.0 и выше. Если вы застряли на 5.4.x, вы можете применить этот патч к вашей системе, чтобы он работал правильно: https://github.com/concrete5/concrete5/pull/147/files]. Если вы новичок в программировании в целом, вы можете полностью игнорировать этот параграф, так как он не будет иметь особого смысла:)
Что касается кода базы данных, который вы используете, если вы взаимодействуете с базой данных Concrete5, не используйте все эти вещи mysql_connect - C5 уже устанавливает соединение с базой данных и использует библиотеку ADODB для взаимодействия с ней, например так:
$db = Loader::db();
$sql = "INSERT INTO testimonials (name, content) VALUES ?, ?";
$vars = array($testimonial_name, $testimonial_content);
$db->query($sql, $vars);
Обратите внимание, что я пропустил "id" из списка полей вашего оператора вставки - я предполагаю, что id - это поле первичного ключа с автоинкрементом в таблице MySQL, что означает, что вы этого не делаете вставьте что-нибудь для этого (база данных просто волшебным образом создаст свой собственный номер). Это общая вещь MySQL, кстати - не имеет ничего общего с C5 конкретно.
Если вы хотите подключиться к другой базе данных , то код «Загрузчик» будет немного другим - см. Раздел «Подключение к другим базам данных» на этой странице: http://www.concrete5.org/documentation/developers/system/database-connectivity (и особенно обратите внимание на последнюю строку в примере кода, которая сбрасывает соединение, когда это будет сделано - вы должны сделать это, иначе Concrete5 потерпит неудачу после выполнения вашего пользовательского кода).
Удачи!