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 avec OLEDB


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Connexion avec OLEDB
    Bonjour,
    Bien que ce sous-forum traite de ODBC, mon problème est relatif à OLEDB (j'ai lu que ce driver était plus rapide).

    Je vous présente d'emblée mon code de connection :

    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
    27
    28
    29
    30
    31
    <?php
    include('adodb.inc.php');  
     
    $ProviderOLEDBHFSQL = 'Provider=PCSOFT.HFSQL; Data Source=91.220.197.26:4900; Initial Catalog=testAPI; User ID=Florian; Password=*******;';
     
    $ConnectionOLEDBHFSQL = new COM("ADODB.Connection")
    	or die("Impossible d'instancier un objet ADO");
    echo "coucou";
    $ConnectionOLEDBHFSQL ->ConnectionString = $ProviderOLEDBHyperFileSQL;
    $ConnectionOLEDBHFSQL -> Open();
     
    $res = new COM("ADODB.Recordset");
    $sql = "SELECT * FROM test";
    $rq->Open($sql, $ProviderOLEDBHFSQL);
     
    $index=0;
    while(!$rs->EOF){
     
    	for($x=0; $x<$rs->Fields->Count; $x++){
    		$assoc_array[ $index ][ $rs->Fields[$x]->Name ] = $rs->Fields[$x]->Value;
    		echo $rs->Fields[$x]->Name ." -> ". $rs->Fields[$x]->Value . "<br>";
    	}
     
    	echo "--------------------------<br>";
     
    	$rs->MoveNext();
    	$index++;
    }
     
    echo $index." enregistrement(s) listé(s) <br>";
    $rs->Close();
    Dans ce code, mon echo "coucou" se s'affiche pas. Si je je le déplace à la ligne juste avant, il s'affiche correctement.
    J'en déduis que c'est donc un problème d'instanciation de mon objet COM.

    Pourtant, j'ai bien ajouté la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extension=php_com_dotnet.dll
    Dans mon php.ini.

    J'ai également installé le driver OLEDB qui est présent à ce chemin : C:\Program Files (x86)\Common Files\PC SOFT\19.0\OLEDB.

    Cet univers m'est encore obscure, et je suis à court d'idée pour faire fonctionner mon code correctement :/
    Merci pour votre attention à mon problème

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    J'avais simplement une erreur depuis mon serveur qui exécute mon script php. Mon code fonctionne à présent.

    Seulement, j'aimerais écrire des requêtes préparées avec OLEDB et l'objet COM, mais impossible de trouver de la documentation... Quelqu'un aurait une idée ?

    Je vous remet mon code fonctionnel :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    include('adodb5/adodb.inc.php');  
     
    $ProviderOLEDBHFSQL = 'Provider=PCSOFT.HFSQL; Data Source=91.220.197.26:4900; Initial Catalog=testAPI; User ID=Florian; Password=*******;';
     
    $ConnectionOLEDBHFSQL = new COM("ADODB.Connection")
    	or die("Impossible d'instancier un objet ADO");
     
    $ConnectionOLEDBHFSQL ->ConnectionString = $ProviderOLEDBHFSQL;
    $ConnectionOLEDBHFSQL -> Open();
     
    /*
     * Lecture de la BD (SELECT)
     */
     
    $res = new COM("ADODB.Recordset");
    $sql = "SELECT * FROM :test";
    $res->Open($sql, $ProviderOLEDBHFSQL);
     
    $index=0;
    while(!$res->EOF){
     
    	for($x=0; $x<$res->Fields->Count; $x++){
    		$assoc_array[ $index ][ $res->Fields[$x]->Name ] = $res->Fields[$x]->Value;
    		echo $res->Fields[$x]->Name ." -> ". $res->Fields[$x]->Value . "<br>";
    	}
     
    	echo "--------------------------<br>";
     
    	$res->MoveNext();
    	$index++;
    }
     
    echo $index." enregistrement(s) listé(s) <br>";
    $res->Close();

Discussions similaires

  1. Problème de connexion avec OLEDB
    Par Safaritn dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/12/2007, 15h20
  2. [ORACLE 10g Linux] Pbm de connexion avec un Client winXP
    Par zarbiwayne dans le forum Administration
    Réponses: 26
    Dernier message: 20/08/2004, 22h37
  3. Connexion avec Perl
    Par BARBIER dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 14h05
  4. Connexion avec interbase
    Par X Trips dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 30/03/2004, 13h15
  5. [WSAD5] Connexion avec une base Lotus
    Par mickey dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/03/2004, 08h37

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