认为是时候就这个错误寻求一些帮助了,因为我已经尝试了所有我知道该怎么做的事情。基本上我在 MySQL 中创建了一个名为 AddUser 的存储过程,数据库名称是 PersonalWebsiteColdfusion。我可以向你保证它确实存在。如果有帮助,我将使用 Windows IIS 7.5 和 OpenBD for Coldfusion。也只是为了澄清我已经在 OpenBD 网络管理员中创建并验证了数据源。MySQL 是 5.6 版,它是 x64 位环境。问题是,它适用于 cfquery,但如果可能的话,我更喜欢使用 cfstoredproc。错误基本上就是标题中所说的。希望有人可以提供帮助。
更新以提供相关程序代码。
<cfstoredproc datasource="PersonalWebsiteCF" procedure="AddUser" returnCode="yes">
<cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtFirstName#" type="in" variable="strFirstName" />
<cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtLastName#" type="in" variable="strLastName" />
<cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtEmail#" type="in" variable="strEmail" />
<cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtUsername#" type="in" variable="strUsername" />
<cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtPassword#" type="in" variable="strPassword" />
<cfprocparam cfsqltype="cf_sql_timestamp" value="#Now()#" type="in" variable="strDateJoined" />
<cfprocparam cfsqltype="cf_sql_varchar" value="#cgi.remote_addr#" type="in" variable="strIP" />
<cfprocparam cfsqltype="cf_sql_varchar" value="Member" type="in" variable="strMembershipStatus" />
<cfprocparam cfsqltype="cf_sql_varchar" value="No" type="in" variable="strActive" />
<cfprocparam cfsqltype="cf_sql_integer" value="0" type="out" variable="strUserID" />
</cfstoredproc>
也许存储过程本身也很有用:
DELIMITER //
CREATE PROCEDURE AddUser (
IN strFirstName varchar(50),
IN strLastName varchar(50),
IN strEmail varchar(50),
IN strUsername varchar(50),
IN strPassword varchar(150),
IN strDateJoined datetime,
IN strIP varchar(50),
IN strMembershipStatus varchar(50),
IN strActive varchar(50),
OUT strUserID int
)
BEGIN
INSERT INTO tblUsers (FirstName, LastName, Email, Username, Password, DateJoined, IP, MembershipStatus, Active) VALUES (strFirstName, strLastName, strEmail, strUsername, strPassword, strDateJoined, strIP, strMembershipStatus, strActive);
SET strUserID = LAST_INSERT_ID();
END//;
自从我第一次发布以来,我一直在尝试各种事情,但我仍然没有找到解决方案。
谢谢
道格拉斯