IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Connexion sur une dBase via PHP


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut Connexion sur une dBase via PHP
    Bonjour,

    Je pense qu'il y a quelque chose que je n'ai pas compris au sujet des connexions via odbc.

    Voilà sur mon PC local avec easyPHP je me connect à une dBASE (un simple fichier .dbf sur mon bureau), bon jusque là rien d'extraordinaire j'ai juste créé la source dans le panneau de configuration > outil d'administration > sources de donnée.

    Mais par contre si je veux exporter ça sur le server de prod comment je créé la source de donnée ?
    Je n'ai pas de panneau de config etc donc là je suis assez perplexe.

    Alors est-ce que ma question semble bête et extrement facile ? Parceque si c'est le cas j'ai rien compris à tout ce que j'ai lu sur le sujet ....

  2. #2
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Bonjour,

    La source de donnée en local est un lien ODBC (sur ta machine) vers ton fichier.

    Pour faire la même chose sur ton serveur, il te faut

    1. Que ton serveur ait un OS microsoft condition nécéssaire pour la recréation de ton lien ODBC
    2. Déposer ton fichier DBF (ou bien pointer un partage de ta machine)
    3. Enfin recréer ton lien et qu'il pointe vers ton dbf


    Voilà j'espère avoir répondu à ton problème.

  3. #3
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Bonjour,
    Merci beaucoup de ta réponse.

    En fait ce qui me pose probleme c'est le 3eme point, est-ce que je peux recréer le lien vers mon fichier .dbf sans passer par le panneau d'administration (auquel je n'ai pas accés), donc en passant par mon code php.

  4. #4
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Re,

    Oui je pense que c'est possible.

    Pour la connexion sans alias ODBC, tu peux regarder du côté de la FAQ : http://php.developpez.com/faq/?page=odbc#odbc-sans-dsn

    Ensuite trouver la bonne chaîne de connection : http://www.connectionstrings.com/?carrier=dbffoxpro

    Voilà à toi de jouer

  5. #5
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    D'accord, je pense que je vais m'en sortir avec tout ça

    Merci beaucoup (si ça marche je mettrais le code au cas ou quelqun en ait besoin).

  6. #6
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Bon ben voilà je reviens aux news.
    J'ai réussi à faire fonctionner ça sur mon ordi mais quand je passe sur le server de prod ça ne passe plus.

    Alors je me suis inspiré de ce que eric190 m'avait donné (ça n'a pas marché du premier coup mais en bataillant un peut ça passe).

    Donc voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $chaine_connection = "DRIVER={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;";
     
    $conn = odbc_connect($chaine_connection,"","");
    if(odbc_commit($conn)) {
    	$res = odbc_exec($conn,"select * from \\\\163.94.6.50\\c\\WEB\\CLIENTELE\\TraitementW7\\ARE\\U4\\DataBase\\OLHAGRS.DBF") or die("echec store");
    }
    else {
    echo "echec lecture";
    exit;
    }
    $compteur = 0;
    while(odbc_fetch_row($res)) {
    	$compteur++;
    }
    echo $compteur;
    ?>
    Ici la base est sur le server de prod et j'arrive à m'y connecter depuis mon PC personnel (j'ai easyphp dessus).
    Par contre quand je passe sur le server de prod ça ne passe plus.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $chaine_connection = "DRIVER={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;";
     
    $conn = odbc_connect($chaine_connection,"","");
    if(odbc_commit($conn)) {
    	$res = odbc_exec($conn,"select * from \\\\163.94.6.50\\c\\WEB\\CLIENTELE\\TraitementW7\\ARE\\U4\\DataBase\\OLHAGRS.DBF") or die("echec store");
    }
    else {
    echo "echec lecture";
    exit;
    }
    $compteur = 0;
    while(odbc_fetch_row($res)) {
    	$compteur++;
    }
    echo $compteur;
    ?>
    Je ne comprend pas pourquoi ça me genre une erreur sur le server de prod, il tourne bien sur windows.

    Voici l'erreur renvoyée :

    [Microsoft][Gestionnaire de pilotes ODBC] Longueur de chaîne ou de mémoire tampon non valide, SQL state S1090
    Longueur de chaine non valide, est-ce que ça veut dire que le gestionnaire de sources est différent du mien et que la chaine de connexion a plus de parametres ?
    Je suis vraiment dans le flou là

  7. #7
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Bonjour,
    Je n'ai toujours pas trouvé d'autre moyen exploiter cette dBase. Personne ne veut se pencher sur mon probleme ?

Discussions similaires

  1. Réponses: 24
    Dernier message: 18/01/2011, 12h21
  2. [ODBC] [DB2] Problème de connexion à une base de données sur un as400 via PHP sous Linux
    Par boo64 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 19/04/2006, 09h51
  3. Connexion sur une base de données Postgre
    Par ktox dans le forum C++Builder
    Réponses: 3
    Dernier message: 04/08/2005, 10h58
  4. Connexion sur une base via BDE (pb de User Name)
    Par Sharky21 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/12/2004, 10h31
  5. [Débutant] Connexion sur une machine distante protégée
    Par arthix dans le forum Développement
    Réponses: 3
    Dernier message: 28/08/2003, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo