Partage
  • Partager sur Facebook
  • Partager sur Twitter

SQL Server 2008 - php sqlsrv

nouveau code PHP sqlsrv

    8 décembre 2009 à 16:41:55

    Bonjour à tous,

    Je me permet de mettre ici des infos qui pourraient en aider plus d'un. :)

    En effet, il existe moulte infos sur le net concernant les fonction PHP pour dialoguer avec SQL Server 2000-2005

    Et ne pas oublier le beau manuel php ( cf: link) dans lequel j'ai beaucoup appris :D

    Mais aujourd'hui, nous sommes en 2009 (bientôt 2010) et SQL Server 2008 est belle et bien présent.
    Et quand votre server est upgradé avec 2008, vous vous dites:

    "les doigts dans le nez la migration, mais quoi, y a même pas de migration ^^"


    Et bien c'est faux


    Et oui, le premier test, celui de la connections à la base sera un échec et vous vous demanderez pourquoi.
    - Est-ce la bonne instance ?
    - Est-ce que la surface d'exposition de SQL 2008 est en TCP/IP
    - Est-ce que le browser est lancé

    Et la c'est le drâme.

    Mais je vais vous aider. Et oui microsoft a fait du bon boulot poru développer un meilleur outil de base de donnée, mais nous complique la tâche car les fonction mssql sont maintenant obseléte

    Einh quoi, je peux plus utiliser php pour mon vieux SQL 2005 ?

    Non, bien entendu tout çà fonctionne et fonctionnera toujours.



    Mais pour passer à 2008 c'est une autre histoire

    Tout d'abord il faut modifier votre server php et votre fichier php.ini
    Fini l'époque ou on installe wampapache les yeux fermé et ne modifier que 2-3 paramétre.

    Premièrement: Télécharger SQL Server Driver for PHP 1.1 - October 2009 (cf link)
    Décompressez-le et placer la DLL "php_sqlsrv_52_ts_vc6.dll" dans le dossier bin/php/phpvx.x/ext

    Deuxièmement: Ouvrir le fichier php.ini et ajouter aux extension la ligne suivant:
    extension=php_sqlsrv_ts.dll


    Troisièmement: Redémarrer votre server php.

    Ensuite votre nouveau manuel SQL 2008 de chez MSDN (cf lien)

    Vous remarquerez beaucoup de différences:
    Et pour commencer la fonction de conjonction:
    <?php
    
    $connectionInfo = array( "Database"=>$db, "UID"=>$uid, "PWD"=>$pwd);
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    if( $conn )
    {
         echo "Connection ok.\n";
    }
    else
    {
         echo "Connection not ok.\n";
         die( '<pre>'.print_r( sqlsrv_errors(), true).'</pre>');
    }
    
    
    sqlsrv_close( $conn);
    ?>
    


    Et pour finir (car je ne vais pas toutes les faire ici), la fonction de requête de de récupération de données
    <?php
    $tsql = "SELECT FirstName, LastName
             FROM Person.Contact
             WHERE LastName=( ?)";
    
    $params = array('Alan');
    
    $stmt = sqlsrv_query( $conn, $tsql );
    if( $stmt === false)
    {
         echo "Error in query preparation/execution.\n";
         die( print_r( sqlsrv_errors(), true));
    }
    
    /* Retrieve each row as an associative array and display the results.*/
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
    {
          echo $row['LastName'].", ".$row['FirstName']."\n";
    }
    
    ?>
    


    Vous remarquez qu'il n'y a plus de fetch array/batch/rox/field, mais une seul fonction avec un seul paramètre pour obtenir un résultat avec un tableau numéric, associatif ou les deux

    Les requêtes demandes maintenant, obligatoirement en paramètre, la connections à la base.

    On peut indiquer les valeurs à entrer dans les requêtes via un tableau de paramètres.

    Et d'autre truc que je n'ai pas encore vue.

    Je reviendrait dessus quand j'aurai terminé ma migration sql vers sql 2008



    Jusqu'à quand

    Mais jusqu'à quand wampserver n'intégrera pas sqlsrv dans son package
    Mais jusqu'à quand manuele php n'ajoutera pas sqlsrv
    Mais jusqu'à quand des petits malins ne créerons pas une classe de connections sqlsrv

    En espérant aider quelque-uns dans leur recherche périlleuse sur google

    A la prochaine
    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2009 à 17:29:25

      Tu es surement stupéfait par ta découverte, mais c'est la marche à suivre pour intégrer n'importe quelle extension non standard...

      Merci d'avoir lu et simplifié la doc fournie par ms pour le reste de l'humanité :D ...

      Tracker.
      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2009 à 17:53:51

        comment savoir qu'il existe une extension non standard avec sql 2008 alors que l'extension mssql est présente ?

        et bien excuse moi mais j'ai chercher pendant un petit bout de temps.
        Et à part l'update d'avril, il n'y a presque aucune trace sur le net.

        Et merci de me prendre pour un triste abruti qui sort de sa grotte et de ta participation pour le moins, inutile
        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2009 à 18:24:54

          ya toujours un mec qui n'est pas content que de sgens mettent des messages sur les forum, c'est dingue

          et ta recherche google, t'es bien gentils, mais ce matin çà m'a rien appris ne sachant pas qu'il fallait changer de DLL php pour dialoguer avec sql 2008

          Alors qu'avec mon message (que tu as bien foutu en l'air) indiquera la même chose, plus détaillé en français pour un bon départ

          et oui j'ai trouver le blog MSDN (cf lien) lors de mes recherches plus approfondies

          et merci de te prendre pour le modo
          • Partager sur Facebook
          • Partager sur Twitter
            8 décembre 2009 à 19:54:25

            Je me prends pas pour un modo simplement tu en fais des tartines parce que tu as réussi à télécharger un fichier et lire une doc (de 20 lignes)... faut quand même relativiser...

            Tracker.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              8 décembre 2009 à 19:56:58

              Citation : lkaiman


              et merci de te prendre pour le modo


              C'est marrant mais ça doit faire 6 mois que je n'ai pas vu de modo sur le forum PHP.

              C'est sympa ton message lkaiman ;) , mais tu aurais du écrire ça sur un blog par exemple, pour garder une trace. Ou essaye de le faire épingler, ou un tutoriel.
              Le SDZ c'est un grand Chat, dans 2 jours ton message sera perdu parmi des millier d'autres.
              De plus, la probabilité qu'un zéro fasse une recherche sur le forum est très mince, d'autant plus sur SQL Server.

              haha, j'allai écrire la même chose Tracker, mais en ce moment j'y vais doucement. :)
              • Partager sur Facebook
              • Partager sur Twitter
                8 décembre 2009 à 20:09:24

                google est notre ami
                et mettra dans ses caches cette recherche, enfin j'espére

                mais t'a raison Oshiii, merci ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  18 juillet 2014 à 23:35:29

                  Est-il conseillé de créer une application pour entreprise en PHP? Sinon quel langage est conseillé vue kil faut utiliser une bas de donné

                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 octobre 2014 à 11:51:38

                    Tout dépend de l'utilisation qui en est faites.

                    Le php s'utilise avec un navigateur web sur tous les systémes d'exploitation sans rien installer sur le PC utilisateur.

                    Seul le serveur est a configurer avec sa base de données (si tu en utilise une) et le site web à y déposer.

                    Tu peux aussi utiliser les langage machine VB.NET / C...

                    Tu devra créer ton application avec ce langage qui sera fonctionne avec un framework spécifique donc que sur du windows

                    Donner ton programme à tous les utilisateurs qui devront l'utiliser

                    Et créer ta base de données sur le même réseau (local ou web)

                    Bon courage et désolé de la réponse tardive

                    • Partager sur Facebook
                    • Partager sur Twitter

                    SQL Server 2008 - php sqlsrv

                    × 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