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

How to find number of rows affected by INSERT INTO statement in ColdFusion And MySql Database?

我在 ColdFusion 中有以下查询:

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

我想查找受影响的行数。有什么办法可以在 ColdFusion 中找到它吗?

使用 result 属性,然后访问结果的 recordCount 键。

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

<cfdump var="#myResult.recordCount#">
<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#">

您可以更改设置以允许使用一个 cfquery 的多个 sql 语句。为此,请按以下所述进行更改:

在 ColdFusion Admin 中,转到您的数据源定义表单并将 allowMultiQueries=true 添加到“连接字符串”框中。完成后,您可以在单个 CFQUERY 标记中传递多个以分号分隔的查询。只要确保您正在使用 CFQUERYPARAM 来筛选 SQL 注入攻击。

试试这个。

<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()函数时找到插入了多少行。