我在ColdFusion中有以下查询:
<cfquery name="test" datasource="test">
INSERT INTO test (id,name) VALUES (1,"santy"),(2,"raj"),(3,"nil")
</cfquery>
我想查找受影响的行数。有没有办法在ColdFusion中找到它?
答案 0 :(得分:7)
<cftransaction>
<cfquery name="test" datasource="test">
INSERT INTO test (id,name) VALUES (1,"santy"),(2,"raj"),(3,"nil")
</cfquery>
<cfquery name="test1" datasource="test">
SELECT ROW_COUNT() AS numberOfRowsAffected
</cfquery>
</cftransaction>
<cfdump var="#test1.numberOfRowsAffected#">
或
您可以在设置中进行更改,以允许多个sql语句使用一个cfquery。为实现这一目标,请按照以下说明进行更改:
在ColdFusion Admin中,转到数据源定义表单,并将 allowMultiQueries = true 添加到“连接字符串”框中。完成后,您可以在单个CFQUERY标记中传递多个分号分隔的查询。只需确保使用CFQUERYPARAM来筛选SQL注入攻击。
答案 1 :(得分:4)
试试这个。
<cfquery datasource="test" result="myResult">
INSERT INTO test (id,name) VALUES (1,"santy"),(2,"raj"),(3,"nil")
</cfquery>
<cfset getNumberOfRecords = listLen(#myResult.generated_key#)>
<cfdump var="#getNumberOfRecords#">
myResult.generated_key
包含生成的ID列表,因此我们可以在使用listLen()
函数时找到已插入的行数。
答案 2 :(得分:2)
使用result
属性,然后访问结果的recordCount
键。
<cfquery result="myResult" datasource="test">
INSERT INTO test (id,name) VALUES (1,"santy"),(2,"raj"),(3,"nil")
</cfquery>
<cfdump var="#myResult.recordCount#">