+ -
当前位置:首页 → 问答吧 → 讨论sql语句自动替换方法

讨论sql语句自动替换方法

时间:2011-09-30

来源:互联网

背景:
          项目很多地方的sql语句都是直接写在应用中,很暴力的写法。但随着项目的越来越庞大,数据层的分离势在必行。
于是我接手了这个工作。我希望通过写一个自动化替换工具来实现。

目前我的实践:
        1:写了通用类,规定sql语句必须写成 DAL::select()->from()->where()->limit()->excute();
        2:写了个工具,分析静态文件,将所有的sql语句都抓到,支持$sql = "select * from {$table}"." where time>'".date('Y-m-d')."' LIMIT 1";
        3 :  写了个工具,用于分析sql语句(mysql),主要用于区别关键字,便于自动识别 select update insert 等
        4: 写了个工具,自动将分析好的sql语句换成标准的DAL写法
目前的困难:
        我主要是使用token_get_all方法实现的,目前如何将转换好的DAL代码替换回sql语句,想了半天没有好的思路。
主要是,无法确定sql语句具体的位置,只精确到行,没有精确到位数。
请教:
          使用什么样的思路来解决这个问题。

作者: hxmupdata   发布时间: 2011-09-30

mysql 查询替换 UPDATE tang_answer SET content= replace (content,'83884128','28913396')

作者: tangxuewu   发布时间: 2011-09-30

你还不如写在XML配置文件里

作者: iminto   发布时间: 2011-09-30

回复 iminto


    xml中?不理解。数据层分离,可以写在xml中吗?

作者: hxmupdata   发布时间: 2011-09-30

我现在的思路是,将每个token的具体位置得到,就可以实现替换了。

作者: hxmupdata   发布时间: 2011-09-30

相关阅读 更多