+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 55
    Points : 10
    Points
    10

    Par défaut Oracle probleme avec PDO_OCI

    edit : finalement je passe en pdo et j'ai quand meme un problème -> voir mon 2ème message dans le topic. Merci de votre aide.


    Bonjour à tous,
    J'ai du mal à faire le lien entre php (j'utilise easyPHP) et une base Oracle (11g Express).
    J'ai activé les extensions oci, la connexion a l'air de fonctionner car aucune erreur est retourné mais impossible de faire un select.
    J'essai pour l'instant de faire la connexion avec le compte 'system' (je me crérai un compte quand j'arriverai à faire le lien PHP - Oracle).
    Je me suis créé une table TestSystem(id,nm) et voici le code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $connection = oci_connect("system", "MonMDP","XE");
    if(!$connection){
    	echo 'erreur';
    }
    $query = "SELECT id, nm FROM TestSystem";
     
    $statement = oci_parse ($connection, $query);
    oci_execute ($statement);
     
    while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
        echo $row['id'];
        echo $row['nm'];
    }
    J'obtiens une page blanche.

    Pour la base :

    Code :
    1
    2
    3
    4
    5
    SQL> select * from TestSystem;
     
            ID NM
    ---------- --------------------
             1 testsystemvalue
    Merci beaucoup de votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    21 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 569
    Points : 31 436
    Points
    31 436

    Par défaut

    Utilise oci_error() pour controler les erreurs.

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 55
    Points : 10
    Points
    10

    Par défaut

    Salut et merci de ta réponse.
    Je veux finalement passer en PDO.
    J'ai activer php_pdo_oci.dll dans les configurations de php mais j'obtiens cette erreur :
    Code :
    Erreur : SQLSTATE[42S02]: pdo_oci_handle_factory: ORA-12154: TNS:could not resolve the connect identifier specified (ext\pdo_oci\oci_driver.c:631)
    J'ai fais un phpinfo() et j'obtiens OCI_PDO enabled mais ligne vide est-ce normal ? Je met un screenshot : http://image.noelshack.com/fichiers/...sans-titre.png

    Merci de votre aide.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    21 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 569
    Points : 31 436
    Points
    31 436

    Par défaut

    Si tu as ça, c'est déjà que PDO oracle est bien activé.
    Après il faut revoir ta chaine de connexion par exemple.

  5. #5
    Candidat au titre de Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 55
    Points : 10
    Points
    10

    Par défaut

    Citation Envoyé par sabotage Voir le message
    Si tu as ça, c'est déjà que PDO oracle est bien activé.
    Après il faut revoir ta chaine de connexion par exemple.
    Voici le code que j'ai testé :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try { 
    	$db = new PDO("oci:dbname=XP", "system", "MonMDP"); 
    	echo "ok"; 
    }catch(PDOException $e) { 
    	die('Erreur : '. $e->getMessage()); 
    }
     
    $reponse = $db->query('SELECT * FROM TestSystem');
    while($donnee = $reponse->fetch()){
    	echo $donnee['id'] . " -> " . $donnee['nm'];
    }
    Ceci ne m'affiche même pas le "ok", j'ai juste le message suivant :
    Code :
    Erreur : SQLSTATE[42S02]: pdo_oci_handle_factory: ORA-12154: TNS:could not resolve the connect identifier specified (ext\pdo_oci\oci_driver.c:631)
    Encore merci de ton aide.

  6. #6
    Candidat au titre de Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 55
    Points : 10
    Points
    10

    Par défaut

    Pas grand monde fait du Oracle
    Moi aussi si j'avais eu le choix j'aurais fait du MySQL

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    21 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 569
    Points : 31 436
    Points
    31 436

    Par défaut

    Si tu fais une recherche avec cette erreur, tu trouveras plein de pistes touchant PHP ou Oracle.

  8. #8
    Membre Expert Avatar de nathieb
    Homme Profil pro
    Chef de projet/Architecte
    Inscrit en
    mai 2004
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet/Architecte
    Secteur : Service public

    Informations forums :
    Inscription : mai 2004
    Messages : 893
    Points : 1 074
    Points
    1 074

    Par défaut Oracle

    Bonjour,

    Pour ce qui est de Oracle, c'est une grande base avec énormément de possibilités, si vous aimez les défis

    Pour ce qui est de ton erreur, il semble que cela soit un problème de listener qui ne répond pas :

    tnsping XE

    La réponse ... ?

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 5 269
    Points : 10 074
    Points
    10 074

    Par défaut

    De mémoire, pour que ça fonctionne, tu es censé avoir un fichier TNSNAMES quelque part sur la machine du serveur, qui contient la référence à XP.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

    Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •