Flash不能直接访问数据库的原因

为什么FLASH不可以直接访问数据库,为何FLASH一定要通过后台语言才可以访问数据库?

其实,很久以前就有一个老外写过一个类,只要简单配置一下,然后就可以连接数据库了,完全不需要通过ASP,ASP.NET,PHP,JSP等过渡了.可是如果你在现实应用中,真的这样做了,那么等于你已经把你的所有数据库信息光明正大的送给别人了~现在的破解,让多少FLASH开发者心寒啊!把所有的数据库信息都写在AS里面,那你自己想想,后果会多严重~所以通过后台语言的过渡,还是很有必要的.

所以对于初学者,以后还是不要再问这个问题了,不是技术达不到,也不是adobe没有这个能力,其实完全在于一个安全角的考虑.

 

MXML:
<mx:Script>
     <![CDATA[
          private function callService(sql:String):void
          {
               sqlService.send(sql);
          }
     ]]>
</mx:Script>

<sql:MysqlService id="sqlService" 
     host="database.mydomain.com" 
     port="3306" 
     user="username" 
     scrambler="{new PlainTextScrambler('password')}" 
     database="databaseName" 
     response="onResponse(event)" 
     error="onError(event)" />

<mx:ComboBox id="cbx1" dataProvider="{sqlService.lastResult}" labelField="userName" />

 

Straight Actionscript:
private function getUserList():void
{
     var host:String = "database.mydomain.com";
     var port:int = 3306;
     var user:String = "mydatabaseuser";
     var scrambler:PlainTextScrambler = new PlainTextScrambler("password");
     var database:String = "databaseName";

     var con:Connection = new Connection(host, post, user, scrambler, database);
     con.addEventListener(Event.CONNECT, onConnect);
     con.addEventListener(SQLErrorEvent.SQL_ERROR, onError);
     con.connect();
}

private function onConnect(e:Event):void
{
     var con:Connection = Connection(e.target);
     var st:Statement = con.createStatement();
     st.addEventListener(RestulsEvent.RESULTS, onResults); //FOR SELECT
     st.addEventListener(ResponseEvent.RESPONSE, onResponse); //FOR INSERT, UPDATE, etc.
     st.addEventListener(SQLErrorEvent.SQL_ERROR, onError);

     st.executeQuery("SELECT * FROM users;");
}

private function onResults(e:ResultsEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     var rs:ResultSet = e.resultSet;

     while ( rs.next() )
     {
          var userName = rs.getString("userName");
          var email = rs.getString(2);
     }

     con.disconnect();
}

private function onResponse(e:ResponseEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     
     var affectedRows:int = e.affectedRows;
     var insertID:int = e.insertID;

     con.disconnect();
}

private function onError(e:SQLErrorEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     
     var message:String = e.msg;
     var errorNo:int = e.id;
     var text:String = e.text; // Equals SQLError #{id}: {msg}

     con.disconnect();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值