coldfusion的cfquery里,使用在admin里定义好的datasource很方便。但是如果想直接访问不是在datasource里定义好的默认数据库。
例如, 如果每个使用者的数据库是不同的,就会有这个问题。不能在写如下的语句。会造成错误的。
注意:这个写法有可能导致你的程序出错。
<cfquery name="abc" datasource="myds">
use database1
select * from products
</cfquery>
这时,myds里的数据库就会被改变。直到你改过来或者服务重启动才恢复。
你可以使用以下2中方法:
1、使用sql语句的带数据库的表示方法。如例子:
<cfquery name="abc" datasource="myds">
select * from database1..products
</cfquery>
2、使用cfquery的connectionstring。只要把链接串的指向的数据库就可以。但是这个方法,有可能在出错的时候,让别人看到数据库的密码。当然,这个connectionstring是放在session里,在客户登录后就生成。
<cfquery name="abc" connctionstring="#session.你的动态connectionstring#">
select * from database1..products
</cfquery>