如何将生成的查询保存到数据库

时间:2014-03-11 14:46:54

标签: mysql sql coldfusion output coldfusion-8

我有一个过滤器的表单,必须根据用户选择的内容和输入到表单中生成查询,但是我需要将生成的查询保存到数据库中以便调度查询的计划任务,如何我这样做?

2 个答案:

答案 0 :(得分:-2)

为什么不使用cfsavecontent标记使用cffile将查询保存在变量或文件系统中,然后调用该文件而不是数据库或在数据库中写入该变量值并在计划任务中调用以获取该列值数据库并执行它

答案 1 :(得分:-5)

首先将SQL保存在变量中,然后让CFQuery执行变量中的内容。然后使用相同的变量来存储执行的SQL。

<cfset mySQL = "SELECT * FROM MY_TABLE">
<cfquery datasource="myDS" name="qrySelect">
    #mySQL#
</cfquery>
<cfquery datasource="myDS" name="qryUpdate">
    UPDATE MY_LOGGING_TABLE
    SET SQL_COL = '#mySQL#'
</cfquery>

重要提示:请注意,允许这样的自由对最终用户来说可能很危险。它会打开主要的安全风险,例如SQL注入,这可能会破坏您的数据库。你不希望在面向公众的网站上这样做。

但是,有正当理由使用此代码。例如,如果您已正确保护登录过程,并且它是一个Intranet站点,您可以使用此功能为高级用户创建即席查询,同时记录他们的操作。