Экспорт (0) Печать
Развернуть все

Как подключиться к базе данных SQL Windows Azure с использованием PHP

Обновлено: Декабрь 2013 г.

Предусмотрена возможность подключения к базе данных Microsoft База данных SQL Microsoft Azure с использованием PHP и Драйвер SQL Server для PHP, начиная с версии 1.1. В этом разделе показано, как создать приложение PHP в веб-роли Windows Azure CGI, которое подключается к База данных SQL Microsoft Azure. Выполните шаги, описанные в разделе Начало работы документации по Драйвер SQL Server для PHP, чтобы подготовить сервер для разработки PHP-приложений в связке с SQL Server. Загрузить Драйвер SQL Server для PHP можно с веб-сайта Microsoft центра загрузок. Дополнительные сведения о Драйвер SQL Server для PHP см. в документации Драйвер SQL Server для PHP на MSDN.

noteПримечание
В момент открытия соединения со службами База данных SQL Azure установите время ожидания подключения на 30 секунд.

Создание приложения Windows Azure

  1. В среде Visual Studio в меню Файл выберите пункт Создать, а затем пункт Проект.

    noteПримечание
    Для использования фабрики развертывания Windows Azure среду Visual Studio необходимо запускать от имени администратора.

  2. В диалоговом окне Создание проекта в списке Типы проекта выберите пункт Облачная служба для Visual C# или Visual Basic.

  3. На панели «Шаблоны» выберите пункт «Облачная служба Windows Azure».

  4. Введите PHPCGIExample в поле Имя и нажмите кнопку ОК.

  5. В диалоговом окне Создание проекта облачной службы добавьте пункт «Веб-роль CGI» на панели Решение облачной службы и нажмите кнопку ОК.

  6. Создайте новую папку PHP в проекте веб-роли и скопируйте файлы из папки установки PHP, например скопируйте в новую папку PHP в проекте содержимое папки c:\program files\PHP. Библиотеки PHP времени выполнения должны быть частью развертываемого пакета.

  7. В окне Обозреватель решений щелкните правой кнопкой мыши проект WebCgiRole, укажите пункт Добавить и выберите Существующий элемент. Найдите файл php-cgi.exe и добавьте его в проект веб-роли.

  8. На панели Свойства для файла php-cgi.exe задайте параметру Действие при построении значение Содержимое, а параметру Копировать в выходной каталог значение Копировать всегда.

Создание PHP-приложения

  1. Измените файл web.config, чтобы настроить обработчик FastCGI. Найдите раздел <handlers> в узле <system.webServer> и добавьте следующее:

    <add name="PHP_FastCGI"
         verb="*"
         path="*.php"
         scriptProcessor="%RoleRoot%\approot\php-cgi.exe"
         modules="FastCgiModule"
         resourceType="Unspecified" />
    
  2. Измените файл web.roleconfig, чтобы раздел <fastCgi> содержал следующий параметр:

    <application fullPath="%RoleRoot%\approot\php-cgi.exe"/>
    
  3. В обозревателе решений щелкните правой кнопкой мыши проект WebCgiRole, выберите пункт Добавить, затем пункт Новый элемент.

  4. В диалоговом окне Добавление нового элемента выберите элемент Текстовый файл на панели Шаблоны. Введите PHPData.php в поле Имя и нажмите кнопку Добавить.

  5. На панели Свойства для файла PHPData.php задайте параметру Действие при построении значение Содержимое, а параметру Копировать в выходной каталог значение Копировать всегда.

  6. В обозревателе решений щелкните правой кнопкой мыши проект WebCgiRole и выберите пункт Свойства. В окне Свойства перейдите на вкладку Веб. На панели Действие при запуске щелкните Указанная страница и введите PHPData.php.

  7. Вставьте в файл PHPData.php следующий код:

    
    <?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. Чтобы запустить решение, нажмите клавишу F5.

См. также

Добавления сообщества

Показ:
© 2014 Microsoft