在另一个查询中使用一个查询中的数据时出现ColdFusion语法错误

在另一个查询中使用一个查询中的数据时出现ColdFusion语法错误,coldfusion,syntax-error,Coldfusion,Syntax Error,我有以下代码,应该根据学生的停车许可证号码获取学生信息: <cfparam name="Permit" default=""> <cfquery name="q_sample" datasource="cars_live"> SELECT * FROM veh_rec WHERE UPPER(DECAL) LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(urldecode(UCase(Per

我有以下代码,应该根据学生的停车许可证号码获取学生信息:

<cfparam name="Permit" default="">

<cfquery name="q_sample" datasource="cars_live">
  SELECT * FROM veh_rec WHERE UPPER(DECAL) LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(urldecode(UCase(Permit)))#">
</cfquery>

<cfif q_sample.recordcount eq 0> 
No Results found for <cfoutput>"#Permit#"</cfoutput> 
</cfif>

<cfquery name="s_sample" datasource="cars_live">
  SELECT FULLNAME FROM id_rec WHERE ID = #q_sample.ID#>
</cfquery>

<cfoutput query="s_sample">
  <p>Name: #FULLNAME#<p>
</cfoutput>

<cfoutput query="q_sample" >
  <p>License Plate Number: #license# <br><br> Permit ID Number: #decal#<br><br> Student ID Number: #ID# <br><br> Academic years: #ACADYR#<br><br></p>
</cfoutput>
车牌号、许可证ID号等都可以正常工作,但当我尝试使用q_sample.ID标记时,会出现语法错误。然而,当我查看chrome控制台窗口中的错误时,我可以看到它正在根据许可证号码获得正确的ID。不知道为什么会这样。有人知道我做错了什么吗

谢谢大家!

应要求:

错误:

The web site you are accessing has experienced an unexpected error.
Please contact the website administrator. 

The following information is meant for the website developer for debugging purposes.
Error Occurred While Processing Request
Error Executing Database Query.

A syntax error has occurred.

The error occurred in /d2/www/vhosts/joeyP.cfm: line 11
9 : 10 : <cfquery name="s_sample" datasource="cars_live">11 :   SELECT FULLNAME FROM id_rec WHERE ID = #q_sample.ID#>12 : </cfquery>13 : 

VENDORERRORCODE   -201

SQLSTATE      42000

SQL    SELECT FULLNAME FROM id_rec WHERE ID = 371043>

DATASOURCE    cars_live

Resources:

Check the ColdFusion documentation to verify that you are using the correct syntax.
Search the Knowledge Base to find a solution to your problem.

Browser     Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36

Remote Address      10.200.168.210

Referrer    http://{redacted}/tests/yup.html

Date/Time   10-Jun-13 09:17 AM

Stack Trace
at cfjoeyP2ecfm876470777.runPage(/d2/www/vhosts/joeyP.cfm:11) at cfjoeyP2ecfm876470777.runPage(/d2/www/vhosts/joeyP.cfm:11) 
我测试的数字是371043

在这个查询的末尾有一个外部>。如果你把它去掉,它会解决你的问题

<cfquery name="s_sample" datasource="cars_live">
SELECT FULLNAME FROM id_rec WHERE ID = #q_sample.ID#>
</cfquery>
在这个查询的末尾有一个Extraneous>。如果你把它去掉,它会解决你的问题

<cfquery name="s_sample" datasource="cars_live">
SELECT FULLNAME FROM id_rec WHERE ID = #q_sample.ID#>
</cfquery>

发生错误时,请发布完整的错误消息和q_sample.ID的实际值。虽然实际上不需要两个2查询。只需在id列的两个表之间使用联接。我添加了信息!我想我可以查一下,然后用它。这看起来很简单。从概念上来说是的,但在代码方面,联接更简单。另外,您还消除了一个额外的db调用。顺便说一句:1因为您正在搜索一个精确的匹配项,所以查询应该使用=而不是like 2。不要忘了确定变量的范围,例如URL.permit 3您很少需要urlDecode。CF自动解码URL变量4在所有变量查询参数上始终使用cfqueryparam是一种很好的做法。感谢提示:发生错误时,请发布完整的错误消息和q_sample.ID的实际值。虽然实际上不需要两个2查询。只需在id列的两个表之间使用联接。我添加了信息!我想我可以查一下,然后用它。这看起来很简单。从概念上来说是的,但在代码方面,联接更简单。另外,您还消除了一个额外的db调用。顺便说一句:1因为您正在搜索一个精确的匹配项,所以查询应该使用=而不是like 2。不要忘了确定变量的范围,例如URL.permit 3您很少需要urlDecode。CF自动解码URL变量4在所有变量查询参数上始终使用cfqueryparam是一个很好的实践。感谢提示:我自己刚刚找到它。。。多尴尬啊!非常感谢。没问题。如果我有一个语法错误,它最终与我倾向于掩盖他们时,使用ColdFusion,因为他们是如此频繁。刚刚发现它自己。。。多尴尬啊!非常感谢。没问题。如果我有一个语法错误,它最终与我倾向于掩盖他们时,使用ColdFusion,因为他们是如此频繁地使用。