问题
<cfelseif ARGUMENTS.myForm.Submit EQ "Update_what">
<cfquery name="LOCAL.myURL" datasource="#SERVER.cfc.core.getDSN()#">
SELECT What_name
FROM logboek.tbl_What
WHERE What_name = <cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.What_name#" />
</cfquery>
<cfif LOCAL.myURL.RecordCount eq 0>
<cfreturn VARIABLES.Error.myReturn />
<cfelse>
<cfquery name="LOCAL.myURL" datasource="#SERVER.cfc.core.getDSN()#">
UPDATE logboek.tbl_What
SET What_name=<cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.What_name#" />;
WHERE What_name=<cfqueryparam value="#ARGUMENTS.myForm.What_name#" cfsqltype="cf_sql_varchar">
</cfquery>
</cfif>
I rewrote my code but now I get the following error:
queryError string UPDATE logboek.tbl_What SET What_name='HTML'; WHERE What_name='HTML'.
This is my form code:
<form action="blog.Logboek" method="post" name="Update_what">
<input type="Text" name="What_name" placeholder="Type what you want to update:">
<input name="requiredFields"type="hidden" value="What_name" />
<input type="Submit" name="Submit" value="Update_what">
</form>
So why can't I update with a form as I want? Can someone give an example of an update with a form?
回答1:
Try changing
UPDATE logboek.tbl_What SET What_name=<cfqueryparam
cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.What_name#" />;
WHERE What_name=<cfqueryparam value="#ARGUMENTS.myForm.What_name#"
cfsqltype="cf_sql_varchar">
into
UPDATE logboek.tbl_What SET What_name=<cfqueryparam
cfsqltype="cf_sql_varchar" value="#ARGUMENTS.myForm.What_name#" />
WHERE What_name=<cfqueryparam value="#ARGUMENTS.myForm.What_name#"
cfsqltype="cf_sql_varchar">
I removed the ; at the end of the set What_name row.
来源:https://stackoverflow.com/questions/34878305/coldfusion-sql-update-with-form