ASQLを使ってas3から直接MySQLとやり取りしてみる
久しぶりのas3エントリー。ASQLとはMySQLに直接接続できるライブラリー。現在の最新リリースはalpha 0.1.4。まずはクラスをASQLのサイトからダウンロードしてくる。ソースは以下参照。
今回はローカルにあるMySQLに接続するので、connector.connect()の第1引数と第2引数はそのままにしておく。第3引数と第4引数をデータベースに合わせて変更する。第5引数はポート番号なので特に変更する必要なし。次にconnector.query();でSQL文を発行してやる。ここも任意のテーブル名を指定する。最後に受け取るデータはすべて配列で返ってくるため、evt.data[0].columnNameとする事で個別に取得できる。columnNameはデータベースのフィールド名に置き変えてやれば、それに対応するデータが取れる。用事が済んだらconnector.disconnect();でコネクションを開放してやるのもお忘れなく。
本家サイトのフォーラムでも触れられてるけど、swfをデコンパイルされるとサーバー情報が丸見えになるのでプロテクトをかけるなどの注意が必要。
{
import pl.mooska.asql.*;
import pl.mooska.asql.events.*;
import flash.display.Sprite;
public class AsqlSample extends Sprite
{
private var connector:Asql = new Asql();
public function AsqlSample()
{
connector.addEventListener( SQLEvent.CONNECT, handleConnect );
connector.addEventListener( SQLError.SQL_ERROR, handleError );
connector.addEventListener( SQLEvent.SQL_OK, handleOK );
connector.addEventListener(SQLEvent.SQL_DATA, handleData);
connector.connect("localhost", "root", "パスワード", "データベース名" , 3306);
}
private function handleConnect ( evt:SQLEvent ):void
{
trace("コネクション成功");
connector.query("select * from テーブル名"); //type a query, without semicolon at the end
}
private function handleError ( evt:SQLError ):void
{
trace("エラー "+evt.text);
}
private function handleOK ( evt:SQLEvent ):void
{
trace("SQL文の実行成功");
}
private function handleData ( evt:SQLEvent ):void
{
trace("データ受け取り成功");
trace( evt.data[0].columnName);
connector.disconnect();
}
}
}
Post a comment
Trackbacks
この記事のコメント・トラックバックRSS