AMFPHPã使ã£ã¦MySQLãã¼ã¿ã¼ãã¼ã¹ã¸æ¸ãè¾¼ã¿ãã¦ã¿ã¾ããã
AMFPHPã使ã£ã¦MySQLãã¼ã¿ã¼ãã¼ã¹ã¸æ¸ãè¾¼ã¿ãã¦ã¿ã¾ããã
ãããªæããFlexããphpã®ã¯ã©ã¹ãå¼ã³åºãã¦ãã¼ã¿ã¼ã®è¡¨ç¤ºã»è¿½å ãè¡ãã¾ãã
AMFPHPã使ãã¨phpã§ä½æããã¯ã©ã¹ããã®ã¾ã¾Flexããå¼ã³åºããã¨ãã§ãã¾ãã
con.call("TestMySQLService.loadData", responder);
ãã¨ãã¤ããªéä¿¡ã¨ãªããxmlå½¢å¼ã¨ã¯éã転ééãå°ãªãã¨ã¦ãã¹ãã¼ãã§ãã
ç°¡åãªèª¬æ
AMFPHPããã¦ã³ãã¼ã
http://amfphp.org/
#ä»åã¯amfphp-1.9.beta.20080120.zipã使ç¨ãã¦ã¿ã¾ããã
ãã¦ã³ãã¼ããã¦è§£åãã¦ã§ãããã¡ã¤ã«ãwwwãã©ã«ãã«ã³ãã¼ãã¾ãã
æ¥æ¬èªãæ±ãå ´åãæåã³ã¼ããSJISãªå ´åã¯ä»¥ä¸ãæ¸ãæãã¾ãã
ã/path/to/amfphp/gateway.phpã
//$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1"); $gateway->setCharsetHandler("none", "ISO-8859-1", "ISO-8859-1");
ç°¡æãããã°æ¹æ³ã¨ãã¦ã
ãhttp://localhost/path/to/amfphp/browser/ãããªã¹ã¹ã¡ã§ãã
#AMFPHPãã/path/to/amfphp/ãã«ç½®ããå ´å
ã¯ã©ã¹ã®ä¸è¦§ãã¡ã½ããã®è¡¨ç¤ºã»å®è¡ããã©ã¦ã¶ããè¡ãã¾ãã
ããã§ã¯ãå®éã®MySQLã®ãã¼ã¿ã¼ã表示ï¼è¿½å ããPHPããã°ã©ã ã§ãã
phpã®ã½ã¼ã¹ã³ã¼ã
<?php class TestMySQLService{ var $methodTable; function TestMySQLService(){ //DBã¸ã³ãã¯ã $dbh = mysql_connect("localhost", "root", ""); $dbh_s = mysql_select_db( "iplflex" ); } /* ãã¼ã¿åå¾ */ function loadData() { GLOBAL $dbh; $sql = " SELECT * FROM ipl_test WHERE print = 1 "; $result = mysql_query( $sql ); while( $val = mysql_fetch_assoc( $result ) ){ $res_list[] = array( "name" => mb_convert_encoding( $val['name'] , "UTF-8" , "SJIS" ), "comment" => mb_convert_encoding( $val['comment'] , "UTF-8" , "SJIS" ), "print" => mb_convert_encoding( $val['print'] , "UTF-8" , "SJIS" ), ); } return $res_list; } /* ãã¼ã¿æ¿å ¥ */ function writeData( $name = "" , $comment = "" , $print = "" ){ GLOBAL $dbh; if ($name != "" && $comment != "" && $print != "") { $name = mysql_real_escape_string( $name ); $comment = mysql_real_escape_string( $comment ); $print = mysql_real_escape_string( $print ); $name = mb_convert_encoding( $name , "SJIS" , "UTF-8" ); $comment = mb_convert_encoding( $comment , "SJIS" , "UTF-8" ); $print = mb_convert_encoding( $print , "SJIS" , "UTF-8" ); $sql = "INSERT INTO ipl_test ( name , comment , print )VALUES( '{$name}' , '{$comment}' ,'{$print}' ) ; "; $result = mysql_query( $sql ); } return $this->loadData(); } } ?>
mb_convert_encodingã®é¨åã¯ãã¼ã¿ãã¼ã¹ãsjisãªå ´åãUTF-8ãªå ´åã¯ãããªãã§ãã
Flexã®ã½ã¼ã¹ã³ã¼ã
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top" backgroundColor="white" creationComplete="init();"> <mx:Script> <![CDATA[ import mx.controls.Alert; import flash.net.NetConnection; import flash.net.ObjectEncoding; import flash.net.Responder; [Bindable] public var dataList:Array = [];//è¿ãå¤åãåãç¨ private const GATEWAY_URL:String = "http://localhost/path/to/amfphp/gateway.php"; private function init():void { var responder:Responder = new Responder(onResult, onFault); var con:NetConnection = getCon(); //ãã¼ã¿åå con.call("TestMySQLService.loadData", responder); } //ãã¼ã¿éä¿¡ private function sendMessage():void { var responder:Responder = new Responder(onResult, onFault); var con:NetConnection = getCon(); con.call("TestMySQLService.writeData", responder, nameText.text , commentText.text , printText.text ); } //ã³ãã¯ã·ã§ã³åæå private function getCon():NetConnection { var time:Number = (new Date()).getTime(); var con:NetConnection = new NetConnection(); con.connect(GATEWAY_URL + "?time=" + time); con.objectEncoding = ObjectEncoding.AMF3; return con; } //ãã¼ã¿åå¾æå private function onResult(etc:*):void { if (typeof etc == "object") { dataList = etc; } else { Alert.show("Error-2"); } } //ãã¼ã¿åå¾å¤±æ private function onFault(etc:*):void { Alert.show("Error-1"); } ]]> </mx:Script> <mx:ApplicationControlBar dock="true" width="521" height="68"> <mx:Label data="åå:" /> <mx:TextInput id="nameText" width="10%" /> <mx:Label data="å 容:" /> <mx:TextInput id="commentText" width="335" /> <mx:Label data="表示:" /> <mx:TextInput id="printText" width="29" text="1"/> <mx:Button id="sendButton" label="éä¿¡" click="sendMessage();" /> </mx:ApplicationControlBar> <mx:DataGrid id="dataGrid" dataProvider="{dataList}" width="100%" height="100%"> <mx:columns> <mx:DataGridColumn dataField="name" headerText="åå" width="100" /> <mx:DataGridColumn dataField="comment" headerText="å 容" /> <mx:DataGridColumn dataField="print" headerText="å 容" /> </mx:columns> </mx:DataGrid> </mx:Application>
åèã«ããã¦ããã ãããã¼ã¸ã¯ãã¡ã
http://www.studio-hedgehog.com/blog/flash/2007/08/
http://blog.asial.co.jp/323