我一直在幫他的朋友出去一個他一直在努力的網站。他是維護ColdFusion網站的任務。他主要是一個網頁設計人員,我的背景是asp.net。試圖從SQL中用ColdFusion獲取ID
我遇到的問題是他們希望能夠將產品添加到購物車。爲了快速做到這一點,我打算使用現有的「添加到購物籃」操作。問題在於網站通常使用名爲productId
的隱藏字段,但快速條目使用ModelID。
我的計劃是從SQL後端獲取productID
,但每次嘗試時都會拋出SQL錯誤。奇怪的是,不管輸入的型號是什麼,錯誤信息都會顯示不同的數字。下面是代碼
快速輸入HTML:
<form action="index.cfm?do=action" method="POST" NAME="quick">
<b>Model Number:</b>
<input type="Text" name="QuickEntryModelNumber" value="" size="8">
<b>Quantity:</b>
<input type="Text" name="Quantity" value="" size="2" maxlength="3"><br>
<input type="hidden" name="wasWholesaler" value="#session.wholesaler#">
<p align="right"><input type="Submit" name="action" value="Add to basket"></p>
</form>
添加到購物籃動作:
<cfif structkeyexists(form,'ProductID')>
<cfparam name="inProductID" type="integer" default = 0>
<cfset inProductID = #form.ProductID#>
<cfelse>
<cfparam name="inProductID" type="integer" default = 0>
<cfquery name="GetID" datasource="#attributes.dsn#">
SELECT P.ProductID
FROM Products P
WHERE P.ModelNumber = #form.QuickEntryModelNumber#
</cfquery>
<cfoutput query="GetID">
<cfset inProductID = #P.ProductID#>
</cfoutput>
</cfif>
基本上我檢查,看看是否存在於形式的數據ProductID
。如果不從數據庫獲取ProductId
。它引發的錯誤是:
[Macromedia][SQLServer JDBC Driver][SQLServer]Conversion failed when converting the varchar value '088254PC' to data type int.
無論您爲模型ID輸入什麼內容,varchar值都始終爲'088254PC'。當我拿出SQL查詢並將productId
設置爲靜態值時,它的功能正常。
我想這將是一個很好的時間來指出這個頁面是一團糟。 20多個不同的人在不同的時間受到感動。它需要被拋出並從頭開始。我沒有數據庫佈局。嘆。任何幫助你們可以拋出我的方式將不勝感激。 ColdFusion不是我的東西。
非常感謝。我實際上在某個時間點引用了它,但SQL查詢錯誤。但是對於您的建議,我可以將其限制爲SQL查詢並進行修復。萬分感謝。 – bigcrav 2013-05-05 01:38:58