Partage
  • Partager sur Facebook
  • Partager sur Twitter

Travailler avec PHP/MSSQL express sous WAMP

ou transferer une appli PHP/MySQL vers PHP/MSSQL

Sujet résolu
    19 septembre 2013 à 17:13:53

    Bonjour les Open Classeroommates,

    J'essaie de transférer un projet que j'ai créé dans une infrastructure php/mysql sous WAMP vers une infrastructure php/mssql. Pour cela, je patauge dans la choucroute depuis des heures et je m'en viens demander de l'aide à de plus expérimentés avant de faire trop de bêtise (A la base, je ne connais que WAMP). Pour le moment, voici ce que j'ai essayé :

    - J'ai téléchargé MS SQL express 2012 et MS SQL Server Management Studio.

    - J'ai créé une base de données test :

        database : testdb1

        Server Name : PC-DAMIEN\SQLEXPRESS

    - J'ai ensuite regardé comment configurer WAMP pour pouvoir utiliser MSSQL.

    - J'ai ajouté le dll ntwdblib dans les répertoires (comme vu sur une vidéo youtube :D) :

        wamp/bin/php/php.5.4.3

        et wamp/bin/apache/apache2.4.2

    - J'ai activé les extensions php_mssql et php_pdo_mssql

    - J'ai créer un script php pour me connecter à la bdd (à partir de la doc php) :

    <?php
    // EXAMPLE USING A WINDOW AUTHENTICATION
    // SEE http://php.net/manual/en/function.sqlsrv-connect.php FOR OTHER TYPES OF CONNECTION
    // ______________________________________________________________________________________
    
    $serverName = "PC-DAMIEN\SQLEXPRESS"; //serverName\instanceName
    
    // Since UID and PWD are not specified in the $connectionInfo array,
    // The connection will be attempted using Windows Authentication.
    $connectionInfo = array( "Database"=>"testdb1");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    if( $conn ) {
         echo "Connection established.<br />";
    }else{
         echo "Connection could not be established.<br />";
         die( print_r( sqlsrv_errors(), true));
    }
    ?>

    - J'ai eu l'erreur suivante :

    Fatal error: Call to undefined function sqlsrv_connect()

    - Je me suis dit que j'avais peut-être pas les bons drivers donc j'ai télécharger les MS Drivers 3.0 for PHP for SQL Server

    J'ai maintenant bien les extensions php sqlsrv mais j'ai la même erreur quand je fait tourner mon script. J'arrête donc ici.

    Quelqu'un aurait-il déjà fait ce genre d'opération ? Je suis plutôt perdu.

    Merci d'éclairer ma lanterne de open zéro.

    Pour info, mes extensions activées :

    • Partager sur Facebook
    • Partager sur Twitter
      23 septembre 2013 à 11:50:37

      Bon, j'ai finalement résolu mon problème mais comme c'est pas évident je poste ici la démarche pour que ça puisse servir :

      1. Installation des drivers php :

      Il faut les télécharger ici : http://www.microsoft.com/en-us/download/details.aspx?id=20098

      Pour choisir les bons drivers, copiez puis coller dans votre répertoire php (wamp/bin/php ou xampp/php) :

      - si vous avez php 5.3 et php.dll

      php_sqlsrv_53_nts.dll

      php_pdo_sqlsrv_nts.dll

      - si vous avez php 5.3 et php5ts.dll

      php_sqlsrv_53_ts.dll

      php_pdo_sqlsrv_ts.dll

      C'est la même logique si vous avez php 5.4.µ

      Ensuite, il s'agit d'activer l'extension en modifiant php.ini :

      au niveau des extensions ajoutez 

      extension = php_sqlsrv_53_nts.dll

      extension = php_pdo_sqlsrv_53_nts.dll

      en adaptant le texte en rouge au nom des deux drivers que vous avez installer.

      2. Configurer MS Server 2012 express 

      Il s'agit ici de créer un nouveau login. Utilisez d'abord l'authentification windows en mode administrateur.

      Dans l'arborescence à gauche clicquez sur security puis clic droit sur login < New Login

       Dans l'onglet status, verifiez que l'accès à distance et le login sont activés.

      Ensuite clic droit sur le serveur (tout en haut de l'arborescence) et cliquez sur "facets". Dans "server configuration", il faut activer RemoteAccesEnabled et RemoteDacEnable. Dans "Surface Area Configuration", il faut activer RemoteDacEnable.

      On peut ensuite quitter MS SQL Server manager et ouvrir SQL Server configuration manager en mode administrateur. 

      Dans SQL Server Network Configuration > Protocols for SQL Express, vérifier que les trois protocoles sont activés. Ensuite, clic droit sur TCP/IP > propiétés. Dans l'onglet "IP Addresses", cherchez l'IP locale 127.0.0.1 et vérifier que TCP Dynamic Ports est blanc. Ensuite dans IPAll, vérifier que TCP Dynamic Ports est blanc et que le port TCP est égal à 1433. 

      Une fois que ceci est fait, vous devez redémarer le service sql express. Tapez services dans "rechercher des fichiers" et ouvrer les services en mode administrateur. Chercher SQL Server (SQLEXPRESS) et redémarrer le service.

      Normalement, vous devriez pouvoir vous connecter en utilisant votre login, le nom de votre serveur et votre mdp via la SQL Server Authentication ou à distance avec un script php et la fonction sqlsrv_connect(). 

      -
      Edité par WebDamen 23 septembre 2013 à 14:02:25

      • Partager sur Facebook
      • Partager sur Twitter

      Travailler avec PHP/MSSQL express sous WAMP

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown