如何在ColdFusion和MySql数据库中查找受INSERT INTO语句影响的行数?

时间:2016-05-10 11:08:49

标签: mysql coldfusion coldfusion-9

我在ColdFusion中有以下查询:

<cfquery name="test" datasource="test">
    INSERT INTO test (id,name) VALUES (1,"santy"),(2,"raj"),(3,"nil")
</cfquery> 

我想查找受影响的行数。有没有办法在ColdFusion中找到它?

3 个答案:

答案 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#">