AS3FlexDB
Friday, January 16th, 2009I think it’s time to write a quick and short post about my flex library. I will only write a short description and some simple usage example. For more explicit tutorials see iTutorials or Sephiroth.
What is AS3FlexDB ?
AS3FlexDB is an open source library that allows Adobe Flex applications to connect to a MySQL server. This library use AMFPHP to acess a MySQL server.
Why AS3FlexDB ?
So before I start describe the lib let me tell you how this project got live. The ideea of this project was a simple question “Can I have all my SQL’s in AS3 and not in PHP?” how useful can that be ! To be more specific what I was wishing was a library that allow me to manipulate a MySQL Database in AS3 no need for me to write any PHP code or other server side code. So this is why? i have chose to write this library.
How AS3FlexDB execute an SQL Statement ?
So what AS3FlexDB do in background ? The flow of events from your code to MySQL is very simple. AS3FlexDB use “RemoteObject” class to access a AMFPHP service. The AMFPHP service more exactly the php “Database” class execute the SQL and return the results to Flex.
Take a look at next diagram :

Now you know what is AS3FlexDB, why I have develop AS3FlexDB and how it works the next important question you must put yourself is “ How can I install and use AS3FlexDB ? “
Install AS3FlexDB
To install AS3FlexDB all you have to do is to install AMFPHP (look here for a tutorial if you don’t know how) copy the file database.php (you can find this file in AS3FlexDB Kit) in your AMFPHP service directory and import in Flex as3flexdb_version.swc library and you are done.
Use AS3FlexDB
You can use AS3FlexDB entirely from MXML or from actionscript. So first let’s try SELECT all users from a database with MXML. The code for this is :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <mx:Application layout="vertical" xmlns:phi="phi.db.*" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:DataGrid id="dg1" width="100%" height="100%" dataProvider="{q1.Records}"> <mx:columns> <mx:DataGridColumn dataField="fname" headerText="First Name"/> <mx:DataGridColumn dataField="lname" headerText="Last Name"/> <mx:DataGridColumn dataField="password" headerText="Password"/> </mx:columns> </mx:DataGrid> <phi:ConnectionData id="c1" name="mxml_conn1" host="localhost" db="test" username="root" password="root" /> <phi:Database id="db1" connection="{c1}" /> <phi:Query id="q1" database="{db1}" q="SELECT * FROM users WHERE 1" /> <phi:QueryExecute id="q1ex" query="{q1}" /> </mx:Application> |
If you want to select all users from database using AS3 the code for that will look like this :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /** Database */ import phi.interfaces.IQuery; import phi.interfaces.IDatabase; import phi.db.Database; import phi.db.Query; /** */ private var db :IDatabase; private var query :IQuery; private function onCreateComplete():void { db = Database.getInstance(); query = new Query(); db.connect("conn1", "root", "", "localhost", "flexdb", true); query.connect("conn1", db);} private function selectUsers():void { query.addEventListener(Query.QUERY_END, queryEnd); query.execute("SELECT * FROM users WHERE 1"); } private function queryEnd(evt:Object):void { users = query.Records(); } |
I think now you have a very solid ideea about what this library do. So if you think it’s what you need or you want to read more documentations the next links can help you.
If you want to join the project visit project home page here.
Until next post I will close this post with one of my favorite quote: