http://bbs.javascript.com.cn/thread.php?fid=23

我这里开发方式只针对做AJAX的用户而言
这种开发方式的一个最大特点是将SQL语句在客户端写,
这样的好处是:
1。取数据极为灵活。比如我要去某个表中的某个值只需传递一条SQL语句给服务器即可:
<script>
post("common.php",funciton(o){Alert("服务器返回的数据:"+o)},"select id,name from people where XXX");
</script>
2。无需频繁的在后台程序跟前台程序之间切换,一个通用的操作数据库的文件即可,包括查询和更新的操作,这里分SQL为2种,一种是查询操作,是要取得数据的。第二种是,更新操作,包括添加修改删除,这些是只需返回执行结果的
比如:修改某个用户信息:
<script>
post("common.php",funciton(o){if(o=="ok"){Alert("更新成功")}},"update people set name=100 where id="+user.value);
</script>

不足:
1。SQL写在客户端,不安全,容易被他人得知我的数据库的一些敏感信息
2。为了安全性,要对SQL语句进行加密


用这种方式来开发,比如:你想实现一个自动完成效果,就变得异常简单了。
你希望能输入一个字符后就从后台数据库取得数据并呈现出来,我们一般做法是写一个对应的php文件,然后内容是:mysql_query("select * from data where key='".$_POST["key"]."'")......这样,我每次改变查询条件就需要后台改一次代码,或生成另一个php文件。开发效率极为低下!!
而我的AJAX+SQL的作法:post("common.php",function(o){div.innerHTML=o;},"select * from data where key like '"+key.value+"'");即可。要取数据,只需在客户端改变SQL语句就OK,比如我现在不想取全部数据,只想取某2个字段,id,name,那我只需改变SQL即可:
post("common.php",function(o){div.innerHTML=o;},"select id,name from data where key like '"+key.value+"'");
我的网站用到的取数据模式均为此种方法,http://www.fbajax.com,这都是基于我以前做的一个AJAX DATAGRID
SQL语句写在客户端虽然不安全,但是,在发布的时候,我们可以对它进行加密,用不可逆算法或模糊算法将SQL打散,用eval()函数来执行得到SQL语句,这样就避免了泄露你的数据库的一些信息

http://bbs.javascript.com.cn/read.php?tid=5622
posted on 2007-02-25 15:00  mbskys  阅读(149)  评论(0)    收藏  举报