2011-01-04 8 views
2

Kann Flash zusammen mit SQL verwendet werden? Ich habe ein Flash-Formular und ich muss es mit SQL verbinden. Wenn es im Netz ein Beispiel zu diesem Thema gibt. Ich kann es nicht finden.Kann Flash mit SQL integriert werden?

+2

„SQL“ kein Server ist, es ist eine Sprache mit einer Datenbank für das Gespräch. In diesem Sinne ist es sehr wahrscheinlich, dass ein Flash-Client Daten in eine Datenbank eingibt (höchstwahrscheinlich durch ein serverseitiges Programm oder Skript). Die genauen Einzelheiten einer solchen Implementierung hängen davon ab, was Sie vorhaben und wie Sie mit der Programmierung von Datenbanken umgehen. Vielleicht haben Sie einen Anwendungsfall? –

Antwort

0

Das Problem dabei ist, jemandem eine Flash-Datei zu geben, die direkt auf den SQL-Server zugreift, ist sehr unsicher. Auch wenn es möglich ist, die SOCKET-Klassen für MySQL zu nutzen (obwohl ich sie noch nie benutzt habe), ist es nicht sicher, dass Benutzer sich remote mit Ihrer Datenbank verbinden können, da der Benutzer die Login-Daten ausspionieren kann.

Meiner Meinung nach ist der beste Weg, dies zu tun, ein Client/Server-Skript zu erstellen. Sie können dies einfach mit PHP oder ASP.net tun, indem Sie SendAndLoad verwenden, um die Daten zu senden, die Sie über POST-Felder an SQL übergeben müssen. Sie können dann die Werte in PHP mit zurücksenden:

echo 'success ='. + Urlencode (Daten);

Damit kann Flash über das Erfolgsfeld auf die Daten zugreifen.

Ich persönlich Flash nicht, aber ich arbeite mit einem Unternehmen, das KIOSK-Anwendungen für Dutzende von Messegesellschaften entwickelt, und meine Aufgabe ist es, die Daten zu speichern, zurück zu ihnen. Dies ist die Methode, die wir verwenden. Sie können es noch sauberer machen, indem Sie tatsächliche Webdienste wie SOAP verwenden, aber diese Methode erledigt die Arbeit, wenn Sie sie nur verwenden.

+0

http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary435.html - Deckt das Flash ab SendAndLoad-Methode –

4

Sie verwenden ActionScript nicht direkt mit einer SQL-Datenbank. Stattdessen stellen Sie HTTP-Anforderungen von ActionScript an einen Server unter Angabe der korrekten Parameter ein. Eine typische Opensource-Einrichtung ist ein PHP-Skript, das mit einer MySQL-Datenbank kommuniziert, aber Sie können Java mit Oracle, Ruby mit CouchDB, .NET mit SQL oder jeder anderen möglichen Konfiguration verwenden. Der wichtige Punkt ist, dass Sie in der Lage sein müssen, ein Server-Skript aufzurufen und Variablen zu übergeben ... in der Regel ein Restful-Setup.

Sobald Ihr PHP-Skript richtig konfiguriert wurde, können Sie HTTP POST oder http GET verwenden, um Werte aus ActionScript zu senden.

PHP:

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

von Actionscript dieses Skript aufzurufen, müssen Sie eine Variablen-Objekt erstellen.

Der Variablenname .updateValue muss genau mit der PHP-Variablen übereinstimmen.

Erstellen Sie jetzt ein URLRequest-Objekt, das den Speicherort Ihres Skripts angibt. In diesem Beispiel muss die Methode auf POST gesetzt sein. Sie fügen die oben genannte Variable dem Datensetter der Anfrage hinzu.

Erstellen Sie jetzt einen URLLoader und fügen Sie einen Ereignis-Listener hinzu. Übergeben Sie die oben erstellte Anforderung nicht an den Konstruktor, sondern an die load-Methode.

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

Der Handler würde in etwa so aussehen.

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

Dieses Beispiel zeigt, wie eine Antwort von einer Server/db-Kombination aktualisiert und empfangen wird. Sie können einen DB jedoch auch über das Skript abfragen und das Ergebnis analysieren. Im obigen PHP-Beispiel können Sie also JSON, XML oder sogar eine Piped-Zeichenfolge ausgeben, die von ActionScript verwendet werden kann.

XML ist eine beliebte Wahl, da die e4x-Unterstützung von ActionScript XML wie ein natives Objekt behandelt.

Um die obige Antwort wie eine XML-Antwort zu behandeln, verwenden Sie Folgendes im OnComplete-Handler.

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

Dies werfen wird einen Fehler, wenn Ihr xml schlecht gebildet, so sicherzustellen, dass der Server-Skript immer gültige XML druckt, selbst wenn es ein DB-Fehler ist.

+0

Eine sehr schöne, umfassende Antwort. Du hast meine Stimme! Ich wünschte, die Antworten auf meine Fragen wären so detailliert. :-) – Flipster

0

Sie sollten in Zend Amf oder sogar das Zend Framework für die serverseitige Kommunikation mit Flash schauen. Soweit ich weiß, Zend Amf ist der schnellste Weg, um mit PHP (also Ihre Datenbank) zu kommunizieren auch können Sie & komplexe Objekte vom Client an den Server und umgekehrt übergeben.

Betrachten Sie dies zum Beispiel. Sie haben eine Menge Daten in Ihrer Datenbank, Sie implementieren Funktionen in ZF, während diese Daten als eine Gruppe von Wertobjekten formatiert und festgelegt sind. Von Flash wird ZF abgefragt, Zf fragt die Datenbank ab, ruft & auf, formatiert Ihre Daten und gibt Ihre Value Objects als JSON-String zurück (zum Beispiel). In Flash rufen Sie Ihre JSON-Zeichenfolge ab, dekodieren sie und weisen Ihre Value Objects den relevanten Klassen zu.

Es gibt viele Tutorials zur Flash-Kommunikation mit dem Zend Framework. Hier ist ein Beispiel:
http://gotoandlearn.com/play.php?id=90

Verwandte Themen