actionscript から SQL クエリを作成するにはどうすればよいですか? すべての結果をレンダリングします
3 に答える
サーバーサイド スクリプト (php など) を呼び出して、そのスクリプトの出力を取得する必要があります。
private var _loader:URLLoader;
private var _request:URLRequest;
private function loadData():void {
_loader = new URLLoader();
_request = new URLRequest("path/to/your/phpscript");
_request.method = URLRequestMethod.POST;
_loader.addEventListener(Event.COMPLETE, onLoadData);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFailedToLoad);
_loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFailedToLoad);
_loader.load(_request);
}
private function onLoadData(e:Event):void {
trace("onLoadData",e.target.data);
}
private function onDataFailedToLoad(e:IOErrorEvent):void {
trace("onDataFailedToLoad:",e.text);
}
PHP スクリプトの例:
<?php
// defining main variables
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "test";
$dbTable = "data";
// connecting and selecting database
@mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
@mysql_select_db($dbName) or die(mysql_error());
// getting data
$data = "";
$res = mysql_query("SELECT * FROM ".$dbTable." ORDER BY id") or die(mysql_error());
while($row = mysql_fetch_object($res)) {
$data .= "nname=".$row->name.", ";
$data .= "city=".$row->city;
}
echo $data;
?>
より良いワークフローのために、AMF を検討することをお勧めします...
私が知っている Flex で作業するための JDBC や ODBC に相当するものはありません。Flex/Flash は一般にクライアント側であり、DB は一般にサーバー側 (共有) であるため、これは提供しようとするものとして実際に調査されなかった可能性があります。一般的に言えば、Java、PHP、C#、ASP .NET、Python、C++、またはその他のサーバー側プログラムを使用して、DB への接続を確立し、クエリを実行します。あなたの質問が私が見たものに最も近いものはこれです:ただし、AIR にのみ適用され、リモート SQL 接続には適用されません。特定のDBに接続するためのJDBCのようなインターフェース/実装を作成するのにどれだけの作業が必要なのか、完全にはわかりません。部分的には、DBMSがどれだけよく文書化されているかに依存すると思います...どちらにしても、私の推測では大変な作業になります。
編集
わかりましたので、実際に私の言葉をある程度食べています。
特にアプリケーションがユーザーに配布されている場合は、Flex から SQL クエリ接続を行いたくありません。Flash/Flex アプリケーションは、読み取り可能なソース コードに簡単に逆コンパイルできます。SQL 接続文字列がソースに含まれていると、あらゆる種類のセキュリティの問題が発生します。PHP、Python、Perl、Node などのサーバー側言語に対して、Flex で RESTful Web API を使用して SQL データ処理を行うことは、非常に優れた方法です。
アプリケーションが内部的なものであっても、Flex がデータベースを直接操作しないようにすることは、「紙の上」のより良い概念です。