내보내기(0) 인쇄
모두 확장

방법: PHP를 사용하여 Windows Azure SQL 데이터베이스에 연결

업데이트 날짜: 2013년 12월

버전 1.1부터는 PHP와 PHP용 SQL Server 드라이버를 사용하여 Microsoft Microsoft Azure SQL 데이터베이스에 연결할 수 있습니다. 이 항목에서는 Microsoft Azure SQL 데이터베이스에 연결하는 Windows Azure 웹 CGI 역할 내에서 PHP 응용 프로그램을 만드는 방법을 보여줍니다. PHP용 SQL Server 드라이버 설명서의 시작 섹션에 있는 단계를 따라 PHP와 SQL Server를 사용하여 개발할 수 있도록 서버를 준비하십시오. Microsoft 다운로드 센터 웹 사이트에서 PHP용 SQL Server 드라이버를 다운로드할 수 있습니다. PHP용 SQL Server 드라이버에 대한 자세한 내용은 MSDN의 PHP용 SQL Server 드라이버 설명서를 참조하십시오.

note참고
Azure SQL 데이터베이스에 대한 연결을 열 때는 연결 제한 시간을 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 폴더를 만들고 c:\program files\PHP 등의 PHP 설치 폴더에서 프로젝트의 새 PHP 폴더로 파일을 복사합니다. PHP 런타임 이진 파일이 배포의 일부여야 합니다.

  7. 솔루션 탐색기에서 WebCgiRole 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 항목을 클릭합니다. php-cgi.exe를 찾아보고 웹 역할 프로젝트에 추가합니다.

  8. php-cgi.exe에 대한 속성 창에서 빌드 작업내용으로 설정하고 출력 디렉터리로 복사항상 복사로 설정합니다.

PHP 응용 프로그램 만들기

  1. web.config 파일을 편집하여 FastCGI 처리기를 구성합니다. <system.webServer> 노드에서 <handlers> 섹션을 찾아 다음을 추가합니다.

    <add name="PHP_FastCGI"
         verb="*"
         path="*.php"
         scriptProcessor="%RoleRoot%\approot\php-cgi.exe"
         modules="FastCgiModule"
         resourceType="Unspecified" />
    
  2. <fastCgi> 섹션에 다음 설정이 포함되도록 web.roleconfig 파일을 편집합니다.

    <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