gpt4 book ai didi

mysql - 在 CFScript 中获取新插入的记录 ID

转载 作者:可可西里 更新时间:2023-11-01 07:45:58 25 4
gpt4 key购买 nike

我有一些代码可以将记录连同请求信息一起插入到日志中。发送请求并发回响应后,我会使用响应信息更新记录。有没有办法获取新插入记录的 ID,以便我可以在收到响应后引用并更新它?我知道使用 CF 标签你可以使用 SET NO COUNT 但它似乎在 CFScript 中不起作用。似乎在 INSERT 语句中没有返回任何内容。

        query = new query();
query.name = "queryResult";
query.setDataSource('dsn');
sql = "

INSERT INTO paymentlogs (
type, name, address1, address2, country, provstate, city, pocode, cclastfour, expirymonth, expiryyear, cardtype, requestxml, ipaddress, clid, subscriptionid, total, createdat, createdby, updatedat, updatedby
)
VALUES
(
:type, :name, :address1, :address2, :country, :provstate, :city, :pocode, :cclastfour, :expirymonth, :expiryyear, :cardtype, :requestxml, :ipaddress, :clid, :subscriptionid, :total, :now, :username, :now, :username
)

";
query.setSQL(sql);

query.addParam(name="clid", cfsqltype="cf_sql_varchar", value="#formValues.clid#");
query.addParam(name="type", cfsqltype="cf_sql_varchar", value="#arguments.type#");
query.addParam(name="name", cfsqltype="cf_sql_varchar", value="#formValues.ccname#");
query.addParam(name="address1", cfsqltype="cf_sql_varchar", value="#formValues.ccaddress1#");
query.addParam(name="address2", cfsqltype="cf_sql_varchar", value="#formValues.ccaddress2#");
query.addParam(name="country", cfsqltype="cf_sql_varchar", value="#formValues.cccountry#");
query.addParam(name="provstate", cfsqltype="cf_sql_varchar", value="#formValues.ccprovstate#");
query.addParam(name="city", cfsqltype="cf_sql_varchar", value="#formValues.cccity#");
query.addParam(name="pocode", cfsqltype="cf_sql_varchar", value="#formValues.ccpocode#");
query.addParam(name="cclastfour", cfsqltype="cf_sql_varchar", value="#Right(formValues.ccnumber, 4)#");
query.addParam(name="expirymonth", cfsqltype="cf_sql_varchar", value="#formValues.ccexpirymonth#");
query.addParam(name="expiryyear", cfsqltype="cf_sql_varchar", value="#formValues.ccexpiryyear#");
query.addParam(name="cardtype", cfsqltype="cf_sql_varchar", value="#getCardType(formValues.cctype)#");
query.addParam(name="requestxml", cfsqltype="cf_sql_varchar", value="#soapBody#");
query.addParam(name="ipaddress", cfsqltype="cf_sql_varchar", value="#CGI.REMOTE_ADDR#");
query.addParam(name="subscriptionid", cfsqltype="cf_sql_varchar", value="#formValues.subscriptionid#");
query.addParam(name="total", cfsqltype="cf_sql_float", value="#formValues.grandTotalAmount#");
query.addParam(name="username", cfsqltype="cf_sql_varchar", value="#formValues.username#");
query.addParam(name="now", cfsqltype="cf_sql_timestamp", value="#now()#");
result = query.execute().getResult();
writedump(result);abort;

我已经在 Google 上进行了搜索,但找不到在 CFScript 中执行此操作的任何方法。我不想查询表的最后一行,因为那不是很可靠。有没有办法在执行INSERT查询后获取新插入的记录ID?

我正在使用 mySQL。奇怪的是,当我转储上面的“结果”变量时,CF 提示结果未定义。当我检查表时,我可以看到脚本确实执行了并且记录被插入了。

最佳答案

它应该位于 getPrefix().generatedkey

genKey = result.getPrefix().generatedkey;

关于mysql - 在 CFScript 中获取新插入的记录 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com