Отправка веб-формы Drupal 7 на удаленный сервер MSSQL
Когда пользователи заполняют форму на моем сайте Drupal 7, мне нужна эта информация, чтобы перейти на удаленную базу данных MS SQL-сервера. По сути, это система резервирования, поэтому они заполняют такие данные, как дата / время и имя, и когда они нажимают кнопку "Отправить", эти поля необходимо поместить в удаленную базу данных MS SQL.
Я хотел бы знать, а) если это возможно, и б) как мне реализовать это?
2 ответа
О. Да, это возможно.
Б. Я рекомендую следующий способ, который также является способом "Drupal".
- Установите соединение с удаленной базой данных. Посмотрите здесь, если вы хотите сделать это в своем коде, или посмотрите здесь, если вы хотите, чтобы Drupal позаботился об этом, настроив settings.php. Ключом к переключению между базами данных являются db_set_active($database).
- Запустите запросы, которые вы хотите выполнить к базе данных MSSQL. Просто не забудьте поставить переключатель между базами данных с помощью db_set_active().
Вы можете легко создать собственную форму в Drupal, используя API формы в пользовательском модуле. В обработчике отправки для вашей формы вы можете вставить отправленные данные в базу данных MS SQL, используя любую библиотеку, доступную в вашей среде PHP. Сложно подключиться к базе данных, особенно если на вашем хосте Drupal не установлена ОС Microsoft. В Drupal 7, работающем на IIS, вы можете использовать API базы данных Drupal с драйвером MS SQL. Если вы не используете IIS или Drupal 7, это также возможно без API базы данных Drupal с использованием PDO ODBC с unixODBC и FreeTDS. Я сделал это, но у меня была серьезная проблема при использовании типизированных связанных параметров в моем запросе, см. Использование типизированных связанных параметров с PHP PDO-ODBC, unixODBC и FreeTDS.
Тем не менее, интеграция приложений на уровне базы данных является плохой идеей. Такая интеграция тесно связана. Любое изменение в схеме вашей базы данных MS SQL или способ хранения фактических данных в столбцах нарушит отправку вашей формы. Лучше всего, чтобы ваша система бронирования предоставляла удаленный API для вставки новых данных.