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 :

php et import de shape


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 15
    Points
    15
    Par défaut php et import de shape
    Bonjour à tous,

    J'utilise habituellement des .bat pour importer mes shapes dans ma base. Je développe actuellement un outil en local dans lequel je dois importer des shapes. J'ai donc essayé de lancer mes batch depuis php mais ca ne fonctionne pas. Vu que je n'ai bientôt plus de cheveux à m'arracher je lance donc un grand HELP!

    Voila les codes que j'utilise :

    Mon .bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    title ma fenetre
    cd C:\Program Files\PostgreSQL\8.3\bin
    shp2pgsql -s 3947 C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.shp entites_geographiques > C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.sql
    psql -U postgres -d PREDIT -f C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.sql
    Mon script php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    exec('import_entites_geographiques_rgf93_zone_6');
     
    ?>
    Personne n'aurait une petite idée?

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Bon ca y est j'ai résolu le problème

    En fait il fallait simplement gérer dans mon script une variable d'environnement contenant le mot de passe de la base. La commande bloquait en effet au niveau de l'import du fichier sql dans ma base.

    Pour le script php :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <?php
     
    $mdp = mot de passe;
     
    putenv("PGPASSWORD=$mdp");
     
    exec('C:\\ms4w\\Apache\\htdocs\\PREDIT_v1.0\\sig\\batch\\import.bat');
     
    ?>
    Pour le fichier .bat le classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     
    @ECHO OFF
     
    REM import du shape dans la base
     
    cd C:\Program Files\PostgreSQL\8.3\bin
     
    shp2pgsql -s 3947 C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.shp entites_geographiques > C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.sql
     
    psql -U postgres PREDIT < C:\ms4w\Apache\htdocs\PREDIT_v1.0\sig\shp\import\entites_geographiques.sql
     
    :ALL_DONE
    En espérant que ca aide quelqu'un d'autre !

    Cordialement

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Juste 3 petites choses à ajouter:
    1) tu n'es pas obligé de passer par 2 redirections mais de faire un pipe '|' direct entre 'shp2pgsql' et 'psql'

    2) tu passes par l'option -U qui va forcer à te demander un mot de passe et donc tu sera obligé de le fournir (ici du setenv) alors que tu peux directement écrire après la commande psql 'host=localhost user=xxx password=xxx dbname=xxx'
    (Ce n'est pas dans la doc et j'avais longtemps galéré avec le mot de passe)

    3) tu passes par un .bat alors que avec ce que je t'ai dit, tu peux le faire en trois ligne dans ton application PHP, celà évitera d'avoir à porter un fichier bat en plus ...

    Voilà bonne journée,

    Penses à Résolu
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/01/2012, 14h49
  2. [MySQL] Mysql php et import CSV II
    Par yamatoshi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/12/2011, 17h45
  3. [MySQL] Script php d'importation dans MySQL limité à 80 secondes
    Par JulienDB44 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2011, 16h13
  4. Réponses: 0
    Dernier message: 23/03/2010, 11h45

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