2011-01-04 6 views
2

플래시를 SQL과 함께 사용할 수 있습니까? Flash 양식이 있고 SQL에 연결해야합니다. 이 주제에 대해 인터넷에 예제가있는 경우. 나는 그것을 발견 할 수 없다.Flash를 SQL과 통합 할 수 있습니까?

+2

"SQL"은 서버가 아니며 데이터베이스와 통신하기위한 언어입니다. 이를 염두에두고 Flash 클라이언트가 데이터베이스에 데이터를 제출하는 것은 가능합니다 (대부분 서버 측 프로그램이나 스크립트를 통해 가능). 이러한 구현의 구체적인 세부 사항은 수행 할 계획과 데이터베이스 관련 프로그래밍 배경에 따라 다릅니다. 아마도 유스 케이스가 있을까요? –

답변

0

이 문제는 누군가 SQL 서버에 직접 액세스하는 플래시 파일을 제공하는 것이 매우 안전하지 않다는 것을 의미합니다. 가능하다면 MySQL을 위해 SOCKET 클래스를 보았지만 (사용자는 사용하지 않았지만), 사용자가 원격으로 DB에 연결하도록 허용하는 것은 사용자가 로그인 정보를 스니핑 할 수 있기 때문에 안전하지 않습니다.

제 의견으로는 클라이언트/서버 스크립트를 만드는 것이 가장 좋은 방법입니다. SendAndLoad를 사용하여 POST 필드를 통해 SQL에 전달해야하는 데이터를 보내면 PHP 또는 ASP.net에서 쉽게이 작업을 수행 할 수 있습니다. 그런 다음 PHP에서 값을 다시 보낼 수 있습니다.

echo 'success ='. + urlencode (data);

이렇게하면 플래시가 성공 필드를 통해 데이터에 액세스 할 수 있습니다.

저는 개인적으로 플래시 코드를 작성하지 않지만 수십 개의 전시회 회사에서 KIOSK 애플리케이션을 개발하는 회사에서 일하고 있습니다. 제 일은 데이터를 저장하여 되돌려 보내는 것입니다. 이것이 우리가 사용하는 방법입니다. SOAP와 같은 실제 웹 서비스를 사용하여 더 깔끔하게 만들 수도 있지만,이 방법을 사용하면 작업이 완료됩니다.

+0

http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary435.html - 플래시 SendAndLoad 메서드에 대해 설명합니다. –

4

SQL 데이터베이스에서 ActionScript를 직접 사용하지 마십시오. 대신 올바른 매개 변수를 지정하여 ActionScript에서 서버로 HTTP 요청을 수행합니다. 일반적인 오픈 소스 설정은 MySQL DB와 통신하는 PHP 스크립트이지만 Oracle과 Java, CouchDB와의 Ruby, SQL과 .NET 또는 기타 가능한 구성을 사용할 수 있습니다. 중요한 점은 서버 스크립트를 호출하고 변수를 전달할 수 있어야한다는 것입니다. 일반적으로 Restful 설정입니다.

PHP 스크립트가 올바르게 구성 되었으면 http POST 또는 http GET을 사용하여 ActionScript에서 값을 보낼 수 있습니다.

PHP :

<?php 
    $updateValue = $_POST["updateValue"]; 
    $dbResult = updateDB($updateValue); //This should return the db response 
    echo($dbResult); 
?> 

액션 스크립트에서이 스크립트를 호출하려면, 당신은 변수 객체를 생성해야합니다.

var variables:URLVariables = new URLVariables(); 
variables.updateValue = "someResult"; 

변수 이름 .updateValue는 PHP 변수와 정확히 일치해야합니다.

이제 스크립트의 위치를 ​​지정하여 URLRequest 객체를 만듭니다. 이 예제의 경우 메소드를 POST로 설정해야합니다. 위 변수를 요청의 데이터 설정자에 추가합니다.

var request:URLRequest = new URLRequest("yourScript.php"); 
request.method = URLRequestMethod.POST; 
request.data = variables; 

이제는 URLLoader를 만들고 이벤트 리스너를 추가하십시오. 위에서 생성 된 요청을 생성자에 전달하지 말고 load 메소드로 전달하십시오.

var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, onComplete); 
loader.load(request); 

핸들러는 다음과 유사합니다.

private function onComplete(e:Event) : void 
{ 
    trace(URLLoader(e.target).data.toString()); 
} 

이 예제는 서버/db 콤보에서 응답을 받고받는 방법을 보여줍니다. 그러나 스크립트를 통해 DB를 쿼리하고 결과를 파싱 할 수도 있습니다. 위의 PHP 예제에서 JSON, XML 또는 심지어 파이프로 연결된 문자열을 출력 할 수 있습니다.이 코드는 ActionScript에서 사용할 수 있습니다.

ActionScript의 e4x 지원은 XML을 기본 객체처럼 취급하므로 XML이 널리 사용됩니다.

위의 응답을 XML 응답처럼 처리하려면 onComplete 처리기에서 다음을 사용하십시오.

private function onComplete(e:Event) : void 
{ 
    var result:XML = XML(URLLoader(e.target).data); 
} 

는 DB 오류가있는 경우에도 XML이 제대로 형성되어있는 경우 오류가 발생하므로 서버 스크립트는 항상 유효한 XML을 출력 보장합니다.

+0

아주 훌륭하고 포괄적 인 대답입니다. 내 표를 얻었 어! 내 질문에 대한 답변이 상세하게 제공되기를 바랍니다. :-) – Flipster

0

Flash와의 서버 측 통신을 위해 Zend Amf 또는 Zend Framework를 조사해야합니다. 내가 아는 한 Zend Amf는 PHP (즉, 데이터베이스)와 통신하는 가장 빠른 방법이기도하고 & 복잡한 객체를 클라이언트에서 서버로 또는 그 반대로 반환 할 수 있습니다.

예를 들어 이것을 고려하십시오. 데이터베이스에 많은 데이터가 있지만 ZF에서 함수를 구현하는 반면이 데이터는 값 개체 그룹으로 형식을 지정하고 설정합니다. 플래시에서 ZF를 쿼리하고 Zf가 데이터베이스를 쿼리하고 & 데이터를 검색 한 다음 값 개체를 JSON 문자열 (예 :)로 반환합니다. Flash에서는 JSON 문자열을 검색하여 해독하고 값 객체를 관련 클래스에 할당합니다.

젠드 프레임 워크와의 플래시 통신에 관한 많은 자습서가 있습니다. 다음은 예입니다.
http://gotoandlearn.com/play.php?id=90

관련 문제