【问题标题】:Will a MySql trigger occur before a PDO result is returned?在返回 PDO 结果之前会发生 MySql 触发器吗?
【发布时间】:2014-03-04 19:11:25
【问题描述】:

给定 mysql 数据库表上的 AFTER INSERT 触发器和 PDO 插入记录调用。触发器会在插入语句的返回结果之前发生还是异步发生?如果触发器需要永远执行,它会保留返回结果吗?

【问题讨论】:

  • 你用的是什么版本的 MySQL?
  • 鉴于触发器可以中止正在进行的查询,它必须在任何结果返回到 php 之前发生。
  • 抱歉,我不知道它会因版本而异。我在 5.1.69。另外,我不知道后触发器可以中止查询。

标签: php mysql pdo triggers


【解决方案1】:

这将发生在之前 PDO::query 返回或更好地说,在mysql 服务器响应客户端请求之前。这是保持数据健康所必需的。

证明这一点的最佳测试是将错误放入触发代码并查看错误发生在 php 中。

【讨论】:

    【解决方案2】:

    根据 MySQL 文档, BEFORE 或 AFTER 触发器期间的错误会导致导致触发器调用的整个语句失败。

    因此,一旦触发器完成执行,您的查询将返回结果或返回错误。

    参考:https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 2016-01-25
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多