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

SQL Anywhere Sybase Discussion :

Impossible de se connecter à une bdd Sybase avec PHP


Sujet :

SQL Anywhere Sybase

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Impossible de se connecter à une bdd Sybase avec PHP
    Bonjour à tous,

    Je suis actuellement en train de faire un site en PHP qui doit se connecter avec une bdd Sybase SQL Anywhere 16.

    Cependant pas moyen. J'ai déjà ajouté l'extension sybase-ct mais j'ai fini par me rabattre sur la solution de Sybase avec le SQL Anywhere PHP module. Mais là encore rien. je me suis ensuite orienté vers une connexion ODBC mais là aussi je retrouve la même erreur.

    Voici les différentes syntaxes que j'ai utilisées :

    ******************************************

    $connectionString = "uid=DBA;pwd=sql";
    $conn = sasql_connect( $connectionString );

    // sybase_connect et sqlanywhere_connect ont également été testé sans succès.

    ******************************************

    $conn = odbc_connect("demo", "DBA", "sql");

    ******************************************


    if( $conn ) {
    echo "Connected successfully\n";

    }
    else {
    echo "Connection failed\n";
    }

    A chaque fois c'est Connection failed. Alors que je peux sans problème faire un ping sur la bdd, et le gestionnaire ODBC à réussi tous les tests de connexion à la bdd

    je suis sous Windows 8, Wamp 2.2, Apache 2.2.22, PHP 5.4.3 et SQL Anywhere 16

    Auriez vous des idées ? ça fait deux jours que ça me prend la tête...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 37
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Stagg Voir le message
    A chaque fois c'est Connection failed. Alors que je peux sans problème faire un ping sur la bdd, et le gestionnaire ODBC à réussi tous les tests de connexion à la bdd
    Bonjour,

    Tu devrai essayer d'utiliser / d'appeler la fonction sasql_error() ou/et sasql_errorcode() pour avoir plus d'information sur la cause de l'echec.

    Peut-être rajouter "eng=SampleServer;dbn=demo;" dans ta connectionString ...


    DBRep

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai rajouté "eng=SampleServer;dbn=demo;" mais sans succès.

    l'erreur qui est renvoyée est : -100 Le serveur de base de données est introuvable

    -100 étant le code de l'erreur.

    Je me demandais s'il n'y avait pas de configuration spécifique du serveur Apache pour que ça puisse marcher. Savez-vous quelque chose à ce sujet ?

    Je comprend vraiment pas, ça fait une semaine que je teste toutes les pistes qu j'ai et rien. Si quelqu'un connait un moyen de se connecter à une bdd SQL Anywhere, n'importe lequel, je prend !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 37
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Stagg Voir le message
    J'ai rajouté "eng=SampleServer;dbn=demo;" mais sans succès.
    Il faut probablement que tu remplace "SampleServer" par le nom de ton server (celui que tu as défini lors du lancement du serveur ASA)

    Et sans les option "eng" ni "dbn" quelle est l'erreur ?
    Le serveur ASA est-il sur la même machine que le serveur Apache ?
    (je pense que le serveur Apache est correctement configuré, sinon tu aurai d'autre erreur plus explicite)


    DBRep

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Salut !

    Il faut probablement que tu remplace "SampleServer" par le nom de ton server (celui que tu as défini lors du lancement du serveur ASA)
    Bien sûr je n'ai pas mis SampleServer dans mon code, j'ai juste copier-coller ton post précédent.

    L'erreur est identique sans et avec les attributs dbn et eng : -100 Le serveur de base de données est introuvable, et quand j'essaye avec ODBC l'erreur est : [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

    Pour la suite de mon projet, le serveur ASA est distant, mais pour mes tests j'ai tout installé en local. Donc actuellement c'est du serveur local dont nous parlons.

    Mais même avec une connection ODBC, php refuse de se connecter alors qu'avec l'utilitaire de windows et les mêmes valeurs, les tests de connexion sont réussis.
    j'ai suivi plusieurs tutos et plusieurs solutions chez d'autres personnes, mais rien n'y fait. Mon site ne se connecte pas à la bdd Sybase.

    Il y a cependant une chose que je n'arrive pas à faire et tu connais peut-être la réponse. J'ai également testé avec la fonction sybase_connect(), là il m'est signalé qu'il manque une extension, or j'ai bien dé-commenté la ligne extension=sybase-ct.dll.
    Mais j'avais lu sur plusieurs forum et guide qu'il fallait compiler PHP avec la ligne --with-sybase-ct=DIR
    où DIR est le dossier d'install de SQL Anywhere, mais je n'ai absolument aucune idée de comment on fait cela.

    Parce que j'ai trouvé pas mal de pages qui explique comment faire sous Linux, mais je suis sur windows 8...

    J'ai vu que les fonctions de sybase-ct ont besoin de Client library, est-ce que tu sais où je peux la trouver ? parce que je galère depuis une journée pour la trouver.

  6. #6
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je n'arrive toujours pas à me connecter à ma bdd.

    Comment faire pour configurer apache & php afin d'utiliser les fonctions de sybase-ct.

    Aucune n'est reconnu, l'extension php_sybase-ct est décommentée dans le php.ini, mais dans l'accueil de Wamp je peux que l'extension n'est pas chargée.

    Merci d'avance si quelqu'un veux bien m'aider

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je me suis concentré, sur le SQL Anywhere PHP module et abandonné les essais en local, je souhaite me connecter directement au serveur distant.

    Mon serveur web a bien chargé le module php de SQL Anywhere, je le vois dans les extensions chargées et les fonctions sont reconnues.

    Mon problème est, à présent, qu'il ne trouve pas le serveur auquel je souhaite me connecter.

    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
    18
     
    $UID = "****";
    $PWD = "****";
    $ENG = "****";
    $DBN = "****";
    $HOST = "****";
    $PORT = "****";
     
    $connectionString = "UID=$UID;PWD=$PWD;ENG=$ENG;DBN=$DBN;LINKS=tcpip(HOST=$HOST;PORT=$PORT;DoBroadcast=None)";
     
    $conn = sasql_connect( $connectionString );
    if( $conn ) {
        echo "Connected successfully\n";        
    } 
    else {
        echo "Connection failed : ";  
        echo sasql_error();
    }
    Est-ce que quelqu'un aurait une idée ? Parce que je commence à désespérer.

    Merci d'avance.

  8. #8
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bonjour à ceux qui suivent encore ce sujet,

    C'est bon j'ai trouvé le problème !

    La connexion la plus simple est avec le module de sybase : SQL Anywhere php module.

    Suivez ce guide : http://www.sybase.com/content/101122...hooting-v2.pdf

    Mon problème était que le pare-feu du serveur distant bloquait tout ce qui essayer de passer par les ports utilisés par le serveur de base de données.

    Du coup j'ai créé une règle de sécurité dans le pare-feu du serveur distant autorisant les entrées par ces ports et le tour est joué.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,
    Tu pourrais également utiliser PDO qui est compatible avec la majorité des BDD.

    Il faut vérifier que les modules suivants soit activés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extension=php_pdo.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_mssql.dll
    Ensuite tu peux essayer ceci :

    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
    <?php
      try 
    {
        $hostname = "XXXXXXX";
        $port = XXXXXX;
        $dbname = "XXXXXX";
        $username = "XXXXXX";
        $password = "XXXXXX";
        $db = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$password");
         echo "Connected successfully\n";
      } catch (PDOException $e) {
        echo "Connection failed : ". $e->getMessage() . "\n";
        exit;
      }
    ?>

  10. #10
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Salut,

    Justement PDO avec SQL Anywhere c'est un peu compliqué, le driver ODBC n'est pas facile à trouver si tu n'as pas le SGDB installé sur ta machine.

    De plus le server ASA (Adaptive Server Anywhere) ne fonctionne pas avec mssql.

    Je persiste à dire que le plus simple est de mettre en place l'extension conçue pour si votre application ne comporte pas déjà de connexion ODBC, au quel cas ce serait cela la solution la plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wamp] Impossible de se connecter à une BDD de chez 1and1
    Par TrexXx dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/02/2011, 18h35
  2. Réponses: 9
    Dernier message: 28/05/2009, 15h11
  3. [OCI] Impossible de se connecter à une base 8 avec un Instant Client
    Par localhost dans le forum Interfaces de programmation
    Réponses: 8
    Dernier message: 18/11/2008, 12h10
  4. [Oracle] [OCI] Impossible de se connecter à une base 8 avec l'sdk fournit par Oracle
    Par localhost dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/11/2008, 11h24
  5. Connecter une BDD ACCESS avec DbExpress
    Par gilardino dans le forum Débuter
    Réponses: 7
    Dernier message: 03/04/2008, 20h38

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