0
我試圖對一個賦值進行密碼驗證的方法,該賦值要求我只允許包含'NT'的密碼,然後是現有學生ID的最後6位數字(例如NT123456) 。用戶將在第一頁輸入他們的姓氏和密碼,然後我將通過查詢來運行它。如果記錄數大於0,那麼它們會被重定向到一個門戶網站,否則他們會被告知這是不正確的,但現在這並不重要。從數據庫中生成密碼和進行驗證
我使用的形式是在這裏:
<cfform name="form" action="PortalPage.cfm">
<cfinput type="Text" name="password" maxlength="8">
<cfinput type="submit" name="submit" value="Submit">
</cfform>
其中的形式發送信息到這裏:
<cfquery name="qry1" datasource="grantme">
SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname
FROM Classmates
WHERE Passwords = form.password;
</cfquery>
<cfoutput query="qry1">
#qry1.RecordCount#
</cfoutput>
但我發現了以下錯誤報告:
Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
The error occurred in G:\InetPub2\wwwroot\student\A00507999\PortalPage.cfm: line 9
7 :
8 : <body>
9 : <cfquery name="qry1" datasource="grantme">
10 : SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname
11 : FROM Classmates
VENDORERRORCODE -3010
SQLSTATE 07002
SQL SELECT 'NT' + RIGHT(StudentID, 6) AS Passwords, Lname FROM Classmates WHERE Passwords = form.password;
DATASOURCE grantme
我該怎麼辦才能解決這個問題?我似乎無法得到正確的格式,但邏輯似乎在那裏。
它看起來是從數據庫中檢索兩個值,但只提供一個值來接收它們。 – FDavidov
該問題不是源於此,因爲如果我刪除WHERE子句,我可以顯示值,但是我需要WHERE子句來執行我需要的操作。 – shrimppunk
我認爲我的措辭不清楚......你正在選擇'密碼,Lname'成...什麼?您是否需要指定需要接收這些TWO值的變量? – FDavidov