2012-05-03 6 views
1

약간의 질문이 있습니다. 이해할 수 없습니다. 문제는 무엇이며 어떻게 해결할 수 있습니까? 예를 들어 #account_code#과 같이 coldfusion 변수가 있습니다. 코드는 다음과 같습니다 : 100.001.001 (그 중 많은 코드가 있습니다.) sum(nettotal) 및이 #account_code#에 의해 그룹화 된 cfquery와 같은 일부 변수는이 코드의 목록을 설정하기 때문에 정의됩니다. 목록, 예를 들어 <cfset code_list='100.001.001,100.001.002'> 및 쿼리 : account_code in (#code_list#) 나는 또한이 중 하나를 시도했다 account_code in ('#code_list#')하지만 그 대신 오류를 제공합니다, 그것은 근처에 '.001'잘못된 구문을 말합니다. 늘어나는만큼 내가 어떻게 든이 점들을 대체 할 필요가 있다는 것을 이해하고 그것들없이 코드의 ID를 정의한다. 도와 주셔서 감사합니다! 나는 정말로 그것을 appretiate!그룹화 된 항목에 대한 ID 목록을 정의하십시오

답변

3

만약 당신의 질문이 정말로 SQL IN 절을 올바르게 사용하는지 이해합니다.

절에 SQL은 그 값이 숫자 경우가 인용 할 필요가 없습니다, 값 목록이 필요하지만 당신의 코드는 문자열, 각각의 값은 ColdFusion에서에서

select * from tbl 
where id in ('100.001.001','100.001.002') 

을 인용 할 필요가 이 작업을 수행하는 올바른 방법이 조회에서 여러 매개 변수로 목록을집니다

<cfset code_list='100.001.001,100.001.002'> 
<cfquery name="qSomething" ...> 
select * from tbl 
where id in (
    <cfqueryparam list="true" 
    value="#code_list#" 
    cfsqltype="cf_sql_varchar" /> 
) 
</cfquery> 

진정한 목록을 사용 < CFQUERYPARAM> =이며, 당신의 code_list 실제로 폼이나 URL 변수에 의해 전달되는 경우에 도움이 SQL 인젝션으로부터 당신을 보호하십시오. ttacks.

+0

예 :) 정확하게! 그것은 도움이되었다)) 대단히 감사합니다! –