Exporter (0) Imprimer
Développer tout

Procédure : se connecter à Base de données SQL Windows Azure au moyen de PHP

Mis à jour: décembre 2013

Vous pouvez vous connecter à Microsoft Base de données SQL Microsoft Azure à l'aide de PHP et du Pilote SQL Server pour PHP version 1.1 ou supérieure. Cette rubrique montre comment créer une application PHP dans un rôle CGI Web Windows Azure qui se connecte à Base de données SQL Microsoft Azure. Suivez les étapes de la section Mise en route de la documentation du Pilote SQL Server pour PHP pour préparer votre serveur au développement avec PHP et SQL Server. Vous pouvez télécharger le Pilote SQL Server pour PHP à partir du Microsoft site Web Centre de téléchargement. Pour plus d'informations sur Pilote SQL Server pour PHP, consultez la documentation sur MSDN Pilote SQL Server pour PHP.

noteRemarque
Lorsque vous établissez une connexion avec un serveur Base de données SQL Azure, définissez le délai d'expiration de la connexion sur 30 secondes.

Créer l'application Windows Azure

  1. Dans Visual Studio, dans le menu Fichier, cliquez sur Nouveau, puis sélectionnez Projet.

    noteRemarque
    Vous devez exécuter Visual Studio en tant qu'administrateur pour utiliser Windows Azure Development Fabric.

  2. Dans la boîte de dialogue Ajouter un nouveau projet, dans la liste Types de projets, sélectionnez Service nuage pour Visual C# ou Visual Basic.

  3. Dans le volet Modèles, sélectionnez Service Nuage Windows Azure.

  4. Tapez PHPCGIExample comme Nom, puis cliquez sur OK.

  5. Dans la boîte de dialogue Nouveau projet de service Nuage, ajoutez un Rôle Web CGI au volet Solution de service Nuage, puis cliquez sur OK.

  6. Créez un dossier PHP dans votre projet de rôle Web et copiez les fichiers de votre dossier d'installation PHP (tel que c:\program files\PHP) vers votre nouveau dossier PHP dans le projet. Les binaires d'exécution PHP doivent faire partie du déploiement.

  7. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet WebCgiRole, pointez sur Ajouter, puis cliquez sur Élément existant. Naviguez jusqu'à php-cgi.exe et ajoutez-le à votre projet de rôle Web.

  8. Dans le volet Propriétés de php-cgi.exe, affectez à Action de génération la valeur Contenu et à Copier dans le répertoire de sortie la valeur Toujours copier.

Créer l'application PHP

  1. Modifiez le fichier web.config de façon à configurer votre gestionnaire FastCGI. Recherchez la section <handlers> sous le nœud <system.webServer> et ajoutez les éléments suivants :

    <add name="PHP_FastCGI"
         verb="*"
         path="*.php"
         scriptProcessor="%RoleRoot%\approot\php-cgi.exe"
         modules="FastCgiModule"
         resourceType="Unspecified" />
    
  2. Modifiez le fichier web.roleconfig pour vous assurer que la section <fastCgi> a le paramètre suivant :

    <application fullPath="%RoleRoot%\approot\php-cgi.exe"/>
    
  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet WebCgiRole, pointez sur Ajouter, puis cliquez sur Nouvel élément.

  4. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Fichier texte dans le volet Modèles. Tapez PHPData.php comme Nom, puis cliquez sur Ajouter.

  5. Dans le volet Propriétés de PHPData.php, affectez à Action de génération la valeur Contenu et à Copier dans le répertoire de sortie la valeur Toujours copier.

  6. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet WebCgiRole et sélectionnez Propriétés. Dans la fenêtre Propriétés, sélectionnez Web. Dans le volet Première action, cliquez sur Page spécifique et tapez PHPData.php.

  7. Dans PHPData.php, collez le code suivant :

    
    <?php
    
       $serverName = "tcp:ProvideServerName.database.windows.net,1433";
       $userName = 'ProvideUserName@ProvideServerName';
       $userPassword = 'ProvidePassword';
       $dbName = "TestDB";
       $table = "tablePHP";
      
       $connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true);
    
       sqlsrv_configure('WarningsReturnAsErrors', 0);
       $conn = sqlsrv_connect( $serverName, $connectionInfo);
       if($conn === false)
       {
         FatalError("Failed to connect...");
       }
    
       CreateTable($conn, $table, "Col1 int primary key, Col2 varchar(20)");
    
        
       $tsql = "INSERT INTO [$table] (Col1, Col2) VALUES (1, 'string1'), (2, 'string2')";
       $stmt = sqlsrv_query($conn, $tsql);
       if ($stmt === false)
       {
         FatalError("Failed to insert data into test table: ".$tsql);
       }
       sqlsrv_free_stmt($stmt);
    
       $tsql = "SELECT Col1, Col2 FROM [$table]";
       $stmt = sqlsrv_query($conn, $tsql);
       if ($stmt === false)
       {
         FatalError("Failed to query test table: ".$tsql);
       }
       else
       {
          while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC))
          {
             echo "Col1: ".$row[0]."\n";
             echo "Col2: ".$row[1]."\n";
          }
                                    
          sqlsrv_free_stmt($stmt);
       }
    
       sqlsrv_close($conn);
    
    
    function CreateTable($conn, $tableName, $dataType)
    {
       $sql = "CREATE TABLE [$tableName] ($dataType)";
       DropTable($conn,$tableName);
       $stmt = sqlsrv_query($conn, $sql);
       if ($stmt === false)
       {
          FatalError("Failed to create test table: ".$sql);
       }
       sqlsrv_free_stmt($stmt);
    }
    
    
    function DropTable($conn, $tableName)
    {
        $stmt = sqlsrv_query($conn, "DROP TABLE [$tableName]");
        if ($stmt === false)
        {
        }
        else
        {
          sqlsrv_free_stmt($stmt);
        }
    }
    
    function FatalError($errorMsg)
    {
        Handle_Errors();
        die($errorMsg."\n");
    }
    
    
    function Handle_Errors()
    {
        $errors = sqlsrv_errors(SQLSRV_ERR_ERRORS);
        $count = count($errors);
        if($count == 0)
        {
           $errors = sqlsrv_errors(SQLSRV_ERR_ALL);
           $count = count($errors);
        }
        if($count > 0)
        {
          for($i = 0; $i < $count; $i++)
          {
             echo $errors[$i]['message']."\n";
          }
        }
    }
    
    ?>
    
  8. Appuyez sur F5 pour exécuter la solution.

Voir aussi

Ajouts de la communauté

Afficher:
© 2014 Microsoft