mysql - ColdFusion:查询中有多个 SQL 语句?

标签 mysql coldfusion transactions coldfusion-8

显然,ColdFusion 不喜欢在单个查询中使用多个 SQL 语句...所以曾经是这样的:

SET @sender_user_id = 3, @recipient_user_id = 5;

INSERT INTO messages (message_type, sender_id, message_title, message_content) 
  VALUES(3, @sender_user_id, 'One more thing...', 'I am testing this message');

SET @saved_message_id = LAST_INSERT_ID();

INSERT INTO message_recipient (message_id, user_id) 
  VALUES(@saved_message_id, @recipient_user_id);

INSERT INTO message_status (message_id, user_id, is_read, read_datetime, is_deleted, deleted_datetime)
  VALUES (@saved_message_id, @recipient_user_id, 0, NULL, 0, NULL);

Get 变成了这样:

<cftransaction>

    <cfquery name="insertMessage" dataSource="mySource">

        SET @sender_user_id = 3, @recipient_user_id = 5;

    </cfquery>
    <cfquery name="insertMessage2" dataSource="mySource">

        INSERT INTO messages (message_type, sender_id, message_title, message_content) 
        VALUES(3, @sender_user_id, '#params.message_title#', '#params.message_content#');

    </cfquery>
    <cfquery name="insertMessage3" dataSource="mySource">

        SET @saved_message_id = LAST_INSERT_ID();

    </cfquery>
    <cfquery name="insertMessage4" dataSource="mySource">   

        INSERT INTO message_recipient (message_id, user_id) 
        VALUES(@saved_message_id, @recipient_user_id);

    </cfquery>
    <cfquery name="insertMessage5" dataSource="mySource">   

        INSERT INTO message_status (message_id, user_id, is_read, read_datetime, is_deleted, deleted_datetime)
        VALUES (@saved_message_id, @recipient_user_id, 0, NULL, 0, NULL);

    </cfquery>

</cftransaction>

这行得通...但我想知道是否有一些我不知道的 ColdFusion 东西。否则,这有效。

最佳答案

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

关于mysql - ColdFusion:查询中有多个 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6299326/

相关文章:

javascript 窗口和 cfform

transactions - Hibernate envers 跨多个事务的单个修订

mysql - 我应该使用 Neo4j 来寻找相似的用户还是坚持使用 MySQL 之类的东西?

MySQL 无法在 FROM 子句中指定目标表 'meterValue' 进行更新

mysql - 如何显示被隐藏的行

php - 发票平面 : List Payment Transaction on Invoice

java - 如何将 If 语句放入事务 Firebase Firestore

php - 如何重置密码,盐

coldfusion - cffile 在存储表时创建空行

tomcat - 在 ColdFusion 10 中获取实例名称