2011-01-04 2 views
2

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

+2

«SQL» не является сервером, это язык для разговора с базой данных. Имея это в виду, да, возможно, что Flash-клиент может отправить данные в базу данных (скорее всего, с помощью какой-либо серверной программы или скрипта). Точная специфика такой реализации зависит от того, что вы планируете делать, и вашего опыта программирования в базах данных. Возможно, у вас есть прецедент? –

ответ

0

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

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

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

С помощью этой вспышки можно получить доступ к данным через поле успеха.

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

+0

http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary435.html - Обнаруживает метод отправки SendAndLoad –

4

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

Как только ваш 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()); 
} 

В этом примере показано, как обновлять и получать ответ от компиляции server/db. Однако вы также можете запросить БД через скрипт и проанализировать результат. Поэтому в приведенном выше примере PHP вы можете выводить JSON, XML или даже строку с каналами, и это может быть использовано ActionScript.

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

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

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

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

+0

Очень приятный, исчерпывающий ответ. Вы получили мой голос! Я хочу, чтобы ответы на мои вопросы были более подробными. :-) – Flipster

0

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

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

Существует множество обучающих программ, посвященных флэш-связи с Zend Framework. Вот пример:
http://gotoandlearn.com/play.php?id=90