2011-09-27 4 views
1

Lorsque les utilisateurs remplissent un formulaire sur mon site Drupal 7, j'ai besoin de cette information pour aller dans un serveur distant MS SQL db. C'est essentiellement un système de réservation, donc ils remplissent des détails comme la date/heure et le nom, et quand ils cliquent sur soumettre, ces champs doivent être poussés dans une base de données MS SQL distante.Soumission de formulaire Web Drupal 7 au serveur MSSQL distant

Je voudrais savoir a) si cela est possible et b) comment puis-je mettre en œuvre cela?

Répondre

2

A. Oui, c'est possible.

B. Je recommande la méthode ci-dessous, qui est également la manière "Drupal" de le faire.

  1. Établissez une connexion à la base de données distante. Jetez un oeil here si vous voulez le faire dans votre code, ou jetez un oeil here si vous voulez que Drupal s'en occupe en configurant settings.php. La clé pour basculer entre les bases de données est db_set_active ($ database).
  2. Exécutez les requêtes que vous souhaitez exécuter sur la base de données MSSQL. N'oubliez pas de mettre le commutateur entre les bases de données en utilisant db_set_active().
+0

L'utilisation de l'API de base de données de Drupal n'est possible que sur Drupal 7 exécuté sur IIS avec un pilote supplémentaire http://drupal.org/project/sqlsrv –

0

Vous pouvez créer un formulaire personnalisé dans Drupal facilement en utilisant son Form API dans un custom module. Dans le gestionnaire de soumission de votre formulaire, vous pouvez insérer les données soumises dans votre base de données MS SQL en utilisant n'importe quelle bibliothèque disponible dans votre environnement PHP. La connexion à la base de données est la partie délicate, surtout si votre hôte Drupal n'exécute pas un système d'exploitation Microsoft. Dans Drupal 7 s'exécutant sur IIS, vous pouvez utiliser le Database API de Drupal avec le MS SQL driver. Si vous n'êtes pas sur IIS ou Drupal 7, cela est également possible sans l'API de base de données de Drupal en utilisant PDO ODBC avec unixODBC et FreeTDS. Je l'ai fait, mais j'ai eu un problème majeur lors de l'utilisation de paramètres liés typés dans ma requête, voir Using typed bound parameters with PHP PDO-ODBC, unixODBC and FreeTDS. Cela dit, l'intégration des applications au niveau de la base de données est une mauvaise idée. Une telle intégration est étroitement couplée. Toute modification du schéma de votre base de données MS SQL ou de la façon dont les données réelles sont stockées dans des colonnes va casser votre soumission de formulaire. Le mieux serait que votre système de réservation fournisse une API à distance pour insérer de nouvelles données.

+0

Merci. Je pense que j'aurai besoin d'un peu plus d'aide puisque je ne suis pas codeur/programmeur ... Laisse-moi regarder un peu et revenir. – kreutzer

Questions connexes