1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de système d'information
    Inscrit en
    décembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Administrateur de système d'information

    Informations forums :
    Inscription : décembre 2015
    Messages : 5
    Points : 5
    Points
    5

    Par défaut Connexion impossible depuis PHP

    Bonjour tout le monde !

    Malgré les nombreuses recherches sur le net et dans les différents sujets dans ce forum, je ne trouve guère de réponses à mon problème...
    Je sollicite votre aide.

    Je suis en train de concevoir un site internet et Je souhaiterai afficher dans une page, le résultat d'une requête informix.

    Voici ce que j'ai réalisé pour l'instant:

    1- Ajout dans php de l'extension: php_pdo_informix.dll visible dans php info.

    2- installation du logiciel: IBM Informix Client SDK 4.10 avec ajout des variables d'environnement (via setnet32):

    • $INFORMIXSERVER: Nom du serveur informix distant

    • $INFORMIXDIR : Chemin du dossier informix sur le serveur distant

    3- Page php pour test de connexion (test_connexion-ifx.php):

    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
     
    <?php
     
    try {
     
          $db = new PDO("informix:DSN=monserveur,"monutilisateur", "monmotdepasse");
     
          echo "Connection Etablie";
     
         } 
     
         catch (PDOException $e) {
         echo $e->getMessage();
    }
     
    ?>
    - Lorsque je charge la page test_connexion-ifx.php j'ai l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLSTATE=IM002, SQLDriverConnect: -11041 [Informix][Informix ODBC Driver]Data source name not found and no default driver specified.
    Voilà, je suis bloqué ici et je ne vois plus quoi faire pour que ça fonctionne...

    Pour information J'utilise:

    - Windows 7 - 64bits pour mon serveur web avec WAMP en version 2.4 ( php 5.4.16 / Apache 2.4.4)

    Je vous remercie d'avance de m'éclairer de vos lumières...

  2. #2
    Membre du Club
    Inscrit en
    juillet 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : juillet 2010
    Messages : 35
    Points : 47
    Points
    47

    Par défaut

    Bonjour,

    Le lien suivant donne de très claires indications sur la configuration de PDO:

    http://php.net/manual/en/ref.pdo-inf...connection.php

    Voir la section:
    --------------------

    Example #2 PDO_INFORMIX DSN example using a connection string

    The following example shows a PDO_INFORMIX DSN for connecting to an Informix database named common_db using the Informix connection string syntax.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $db = new PDO("informix:host=host.domain.com; service=9800;
        database=common_db; server=ids_server; protocol=onsoctcp;
        EnableScrollableCursors=1", "testuser", "tespass");

    Tu utilisais plutôt la méthode 1, décrite dans le document, qui nécessite juste un DSN.

    Un extrait de la documentation IBM pourrait aider aussi:

    https://www-01.ibm.com/support/knowl...admin_0154.htm


    Hope this help.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de système d'information
    Inscrit en
    décembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Administrateur de système d'information

    Informations forums :
    Inscription : décembre 2015
    Messages : 5
    Points : 5
    Points
    5

    Par défaut

    Super ! Merci pour le coup de main !

    Voici mon fichier php (connexion_bdd-informix.inc.php ) de connexion:

    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
    18
    19
    20
    21
    <?php
    
    $host = "monhost";
    $bddname = "mabasededonnées";
    $bdduser = "monutilisateur";
    $bddpasswd = "monmotdepasse";
    
    try {
    
          $bdd = new PDO('informix:host='.$host.';dbname='.$bddname, $bdduser,$bddpasswd, "protocol=onsoctcp", "EnableScrollableCursors=1" );
          echo "Connexion établie !";
    
    	} 
    
    catch (PDOException $e) {
    
          echo $e->getMessage();
    	
     }
    ?>
    Lorsque je recharge la page, j'ai dorénavant d'inscrit : Connexion établie !

    Dans l'étape suivante, je cherche à afficher des éléments de la base grâce à une requête SQL.
    J'ai donc créé un nouveau fichier php: monfichier.inc.php.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
     
    include_once ("inc/connexion_bdd-informix.inc.php"); // on appelle le fichier de connexion
     
    $reponse = $bdd->query("SELECT * FROM matable");
     
    // On affiche chaque entrée une à une
     
    while ($donnees = $reponse->fetch())
     
    {
     
    ?>
        <p>
    		<tr>
    			<td><?php echo $donnees['colonne1']; ?></td>
     
    		</tr>
       </p>
    <?php
     
    }
     
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
    Au chargement de la page, j'ai :

    - Un warning:

    Warning: PDO::__construct() expects at most 4 parameters, 5 given in C:\wamp\www\inc\connection_bdd-informix.inc.php on line 10
    - Une erreur:

    Fatal error: Call to a member function query() on a non-object in C:\wamp\www\inc\monfichier.inc.php on line 5
    Je ne trouve pas la solution...
    avez vous une idée ?

    Merci d'avance.

  4. #4
    Membre du Club
    Inscrit en
    juillet 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : juillet 2010
    Messages : 35
    Points : 47
    Points
    47

    Par défaut

    Bonjour,

    La ligne de code utilisée est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('informix:host='.$host.';dbname='.$bddname, $bdduser,$bddpasswd, "protocol=onsoctcp", "EnableScrollableCursors=1" );
    Le message d'avertissement très explicite nous dit qu'il y a 5 paramètres passés au constructeur et que ce n'est pas correct, il n'en attend pas autant.

    Et je compte bien 5 arguments :
    1- 'informix:host='.$host.';dbname='.$bddname,
    2- $bdduser,
    3- $bddpasswd,
    4- "protocol=onsoctcp",
    5- "EnableScrollableCursors=1"

    ...chaque argument étant séparé par une virgule.

    Donc même si le catch {} ne s'est pas déclenché et que il s'agit à ce niveau que d'un "warning", la connexion n'est peut-être pas établie. Le mieux serait de voir au niveau du moteur informix si une session existe en mettant le programme en attente après la ligne d'instanciation.

    La première chose à tester/modifier est d'écrire la ligne d'instanciation comme indiqué dans l'exemple donné dans mon message du 2 mars : "en dur", au moins pour voir si la connexion fonctionne _et_ qu'une requête s'exécute également. En effet, l'erreur nous apprend que l'objet n'a pas été instancié correctement.

    Lire la documentation peut s'avérer aussi utile.


    Hope this help.

Discussions similaires

  1. connexion impossible entre php et postresql
    Par thor76160 dans le forum PHP & PostgreSQL
    Réponses: 6
    Dernier message: 22/05/2011, 18h56
  2. Connexion impossible entre php & mysql
    Par LDDL dans le forum Administration
    Réponses: 2
    Dernier message: 16/03/2010, 18h08
  3. connexion impossible de php à mysql via mysql_connect("")
    Par jrosenzw dans le forum PHP & MySQL
    Réponses: 1
    Dernier message: 18/02/2009, 18h07
  4. Connexion impossible depuis des clients
    Par guitariste dans le forum JDBC
    Réponses: 6
    Dernier message: 20/08/2008, 01h47
  5. [Oracle net / 10g] connexion impossible depuis sqlplus
    Par rvfranck dans le forum Connexions aux bases de données
    Réponses: 10
    Dernier message: 04/01/2008, 10h54

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