Можно ли интегрировать Flash с SQL? - PullRequest
2 голосов
/ 04 января 2011

Можно ли использовать Flash вместе с SQL?У меня есть форма Flash, и мне нужно подключить ее к SQL.Если есть какой-либо пример в сети по этой теме.Я не могу его найти.

Ответы [ 3 ]

4 голосов
/ 04 января 2011

Вы не используете ActionScript напрямую с базой данных SQL.Вместо этого вы отправляете http-запросы из ActionScript на сервер, указывая правильные параметры.Типичная установка с открытым исходным кодом - это скрипт PHP, взаимодействующий с БД MySQL, но вы можете использовать Java с Oracle, Ruby с CouchDB, .NET с SQL или любую другую возможную конфигурацию.Важным моментом является то, что вы должны иметь возможность вызывать серверный сценарий и передавать переменные ... обычно это настройка Restful.

После того, как ваш PHP-скрипт был правильно настроен, вы можете использовать HTTP POST или http GET для отправкизначения из ActionScript.

PHP:

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

Для вызова этого сценария из ActionScript необходимо создать объект переменных.

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 и добавьте прослушиватель событий.Не передавайте созданный выше запрос в конструктор, а в метод загрузки.

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() );
}

В этом примере показано, как обновить и получить ответ от комбо-сервера / базы данных.Однако вы также можете запросить БД через скрипт и проанализировать результат.Таким образом, в приведенном выше примере с PHP вы можете вывести JSON, XML или даже конвейерную строку, и это может быть использовано ActionScript.

XML является популярным выбором, так как поддержка ActionScript e4x рассматривает XML как собственный объект.

Чтобы обработать приведенный выше ответ как ответ XML, используйте в обработчике onComplete следующее.

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

Это приведет к ошибке, если ваш xml плохо сформирован, поэтому убедитесь, что серверный скриптвсегда печатает действительный XML, даже если есть ошибка БД.

0 голосов
/ 04 января 2011

Вам следует изучить Zend Amf или даже Zend Framework для взаимодействия с Flash на стороне сервера.Насколько я знаю, Zend Amf - самый быстрый способ связи с PHP (следовательно, с вашей базой данных), также вы можете передавать и возвращать сложные объекты с клиента на сервер и наоборот.

Рассмотрим, например, это.У вас есть куча данных в вашей базе данных, вы реализуете функции в ZF, тогда как эти данные отформатированы и установлены как группа объектов-значений.Из Flash вы запрашиваете ZF, Zf запрашивает базу данных, извлекает и форматирует ваши данные, возвращает ваши объекты-значения в виде строки JSON (например).Во Flash вы извлекаете строку JSON, декодируете ее и присваиваете свои объекты-значения всем соответствующим классам, которые у вас есть.

Существует множество учебных пособий, касающихся взаимодействия Flash с Zend Framework.Вот пример:http://gotoandlearn.com/play.php?id=90

0 голосов
/ 04 января 2011

Проблема в том, что дать кому-то флэш-файл, который напрямую обращается к SQL-серверу, очень небезопасно. Даже если это возможно, что я видел в классах SOCKET для MySQL (хотя никогда не использовал его), разрешать пользователям удаленное подключение к вашей БД небезопасно, поскольку пользователь может прослушивать информацию для входа.

На мой взгляд, лучший способ сделать это - создать скрипт клиент / сервер. Вы можете легко сделать это с помощью PHP или ASP.net, используя SendAndLoad для отправки данных, которые необходимо передать в SQL через поля POST. Затем вы можете отправить значения обратно в PHP с помощью:

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

При этом flash может получить доступ к данным через поле успеха.

Я не пишу флеш-код лично, но я работаю с компанией, которая разрабатывает приложения KIOSK для десятков компаний, работающих на выставках, и моя задача - хранить данные и возвращать их им. Это метод, который мы используем. Вы можете сделать его еще чище, используя реальные веб-сервисы, такие как SOAP, но этот метод выполняет свою работу, если вы используете его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...