Rechercher : dans
Par :

[PHP / BDD Access] Connexion bdd distante

Dernière réponse le 18 jun 2009 à 11:47:06 Ash, le 17 jun 2009 à 13:33:54 
 Signaler ce message aux modérateurs

Bonjour,

Je rencontre depuis quelques jours un problème (si celui-ci en ai un puisqu'il ne s'est pas encore présenté mais risque de l'être très rapidement) concernant la connexion d'un serveur A (site client) à une base de données Access sur un serveur B.

- Le langage de programmation utilisé pour se connecter à la BDD Access est PHP qui est interprété sur le serveur A.
- La bdd Access est présente sur le serveur B

Après plusieurs recherches sur le net, j'ai remarqué que je n'étais pas le premier (heureusement) à demander de l'aide dans la démarche à suivre.
Je me suis vite rendu compte que si certaines personnes avaient trouvé des réponses à leur problème, ils ne la partageaient pas par oubli surement ou par "Mon problème est résolu, merci mais pas la motivation de dire comment je l'ai résolu".

Bref l'un de mes clients met à ma disposition un certain nombres d'informations qui doivent me permettre de me connecter à leur bdd Access distante :

- Serveur A
- | - Le module sera déployé sur une plate-forme Apache / PHP 5 avec connexion odbc active

- Serveur B
- | - Nom de Domaine : "nom_de_domaine"
- | - Serveur win 2003 :
- | - | - Nom : "server_X"
- | - | - Adresse IP : "XXX.XXX.XXX.XXX"
- | - | - Port : "XXXX"
- | - | - Chemin d'accès bdd : \\server\xxxxx\xxxxx\fichier.mdb
- | - Login :
- | - | - user : "user"
- | - | - password : "password"


Mes recherches à travers le net et les forums (tutos / questions-réponses / etc.) m'ont permis de mieux comprendre comment se connecter à une base de données Access distante.
Cependant, je doute que cela puisse suffire pour se lancer tête baissé dans le développement du module php.
Donc je confectionne des briques de test avant de les rassemblé pour faire un tout.

Voici le code qui m'a permit de me connecter à une bdd access en local :

/CODE
<?php
$user = "root";
$pwd = "";
$dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\fichier.mdb";

$cnx = odbc_connect ($dsn, $user, $pwd) or die ('impossible de se connecter');

$query = "SELECT ...";
$process = odbc_exec ($cnx, $query);
$row = odbc_fetch_array ($process);
odbc_close($cnx);
?>
/CODE

Ce code fonctionne et me permet de me connecter à une bdd access local ayant pour chemin d'accès "C:\fichier.mdb".

Cependant, c'est lorsque la BDD Access devra être accessible à distance que cela se complique.

J'ai quelques idées après recherches mais je souhaiterai avoir votre point de vue et me dire ce qui ne va pas dans le code ci-dessous. De plus, dites moi si les informations que j'ai à ma disposition sonty suffisantes.

En gras le code PHP modifié (par rapport au code en local).

/CODE
<?php
$user = "user";
$pwd = "password";
$serverIP = "XXX.XXX.XXX.XXX:XXXX"; // IP + Port
$pathMDB = "\\server_X\xxxxx\xxxxx\fichier.mdb";


$dsn = "Driver={Microsoft Access Driver (*.mdb)};Server=$server;Dbq=$pathMDB ;Uid=$user;Pwd=$pwd;";

$cnx = odbc_connect ($dsn, $user, $pwd) or die ('impossible de se connecter');

$query = "SELECT ...";
$process = odbc_exec ($cnx, $query);
$row = odbc_fetch_array ($process);
odbc_close($cnx);
?>
/CODE

J'ai essayé d'être le plus clair possible, mais s'il vous manque des explications / renseignements, n'hésitez pas à me les demander .
Merci d'avance à tous ceux qui m'aideront.

Configuration: Windows XP
Firefox 3.0.11

Meilleures réponses pour « [PHP / BDD Access] Connexion bdd distante » dans :
PHP - Connexion à un annuaire LDAP Voir Introduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations...
Se logguer à distance avec ssh (Linux) Voir(Pour ceux qui voudraient avoir un rappel sur SSH : http://www.commentcamarche.net/crypto/ssh.php3) Les commandes suivantes nécessitent d'avoir un compte sur la machine sur laquelle on veut se connecter et qu'un serveur SSH y soit installé. ...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
PHP - Administration d'un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Pour plus d'informations sur les fonctions LDAP de PHP, reportez...
Utilisation de Telnet VoirPrésentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...

1

 Ash, le 18 jun 2009 à 11:47:06

Personne n'a de commentaires à me partager ?

Répondre à Ash