0

ColdFusion を使用しており、MS SQL データベースからデータを取得しようとしています。問題は、詳細が 1 行しかないことです。同時に、ユーザーまたは管理者としてログインしようとすると、正常に動作します。構文は、基本的に admin ログインの場合と同じです。多分私は何かを逃しましたか?コードは次のとおりです。

<html>
<head>


<cfquery name='Query' datasource='MyDSN'>
<cfset "id" = #Form.user#/>
SELECT UserID, FName, SName, Phone, Address FROM users WHERE UserID = <cfqueryparam   value="#FORM.user#" cfsqltype="cf_sql_varchar">
</cfquery>


</head>
<body>

 <cfif #Query.recordCount# EQ 1>


<TABLE height="30px" CELLPADDING="5" CELLSPACING="3">
<TR BGCOLOR="888888" >
<TH>User ID         </TH> 
<TH>Name    </TH>
<TH>Surname </TH> 
<TH>Phone   </TH>
<TH>Address </TH> 
</TR>
<TD><cfoutput> #Query.UserID# </cfoutput></TD>
<TD><cfoutput> # Query.FName# </cfoutput></TD>
<TD><cfoutput> # Query.SName# </cfoutput></TD>
<TD><cfoutput> # Query.Phone# </cfoutput></TD>
<TD><cfoutput> # Query.Address# </cfoutput></TD></TR>

<cfelse>
<cfoutput> No such user...</cfoutput>
</cfif>
</body>
</html>
4

2 に答える 2

3

元のクエリとエラー メッセージは同じコードからのものではありません。エラー メッセージは、FROM ステートメントで列名をリストしていることを示しています。これは正しい構文です。

<cfquery name='Query' datasource='MyDSN'>
SELECT UserID, FName, SName, Phone, Address 
FROM users
WHERE UserID = <cfqueryparam value="#trim(FORM.user)#" cfsqltype="cf_sql_varchar">
</cfquery

Leigh のチャットから - を使用するときは、先頭/末尾のゼロを追加していないことを確認してくださいcfqueryparam

また、cfif ステートメントで#は必要ありません。

<cfif Query.recordCount EQ 1>

出力が機能しない問題を修正するには

<cfif Query.recordCount EQ 1>
  <cfoutput>
    <TABLE height="30px" CELLPADDING="5" CELLSPACING="3">
    <TR BGCOLOR="888888" >
      <TH>User ID</TH> 
      <TH>Name</TH>
      <TH>Surname</TH> 
      <TH>Phone</TH>
      <TH>Address</TH> 
    </TR>
    <TR>
      <TD>#Query.UserID#</TD>
      <TD>#Query.FName#</TD>
      <TD>#Query.SName#</TD>
      <TD>#Query.Phone#</TD>
      <TD>#Query.Address#</TD>
    </TR>
  </cfoutput>
<cfelse>
    <cfoutput> #Form.user#</cfoutput>
</cfif>
于 2013-05-14T12:54:04.713 に答える