【问题标题】:My database doesn't insert immediately我的数据库没有立即插入
【发布时间】:2009-11-01 22:15:24
【问题描述】:

我正在尝试应用测试驱动开发来生成网页,但在使用我的数据库时遇到了问题。我正在使用 Cake 1.1、PHP5 和 SimpleTest 进行单元测试。

我的问题是我有一个测试:

  1. 使用直接 SQL 语句插入一行
  2. 测试是否插入了该行(通过使用我的主程序中的函数。)
  3. 删除插入的行。

第 1 步和第 3 步工作正常,但第 2 步失败。

重要的是要认识到,如果我在不删除行的情况下运行测试(我已将其注释掉)然后再次运行测试但首先消除第 1 步(再次简单地注释该行)并且测试通过而没有问题。

我还尝试在 PHPMyAdmin 中直接运行 SQL 语句(在编辑器中一个接一个),它们运行良好。

【问题讨论】:

  • 我们可以查看一些代码来确定它是发生在一个还是多个事务中?
  • 我实际上添加了提交,但它仍然没有工作。不过感谢您的想法。

标签: php sql cakephp simpletest


【解决方案1】:

所有步骤都在同一个事务中执行吗?

如果不是,则在第 1 步提交之前,第 2 步无法看到第 1 步的结果。

【讨论】:

  • 它们实际上是分开的 SQL 语句......我不认为它们是同一个事务,尽管它们在同一个 PHP 函数中。
【解决方案2】:

听起来您的插入确实发生在您尝试测试时尚未提交的事务中。

你能给出一些示例代码吗?

【讨论】:

    【解决方案3】:

    您确定要在步骤 1 中提交事务吗?

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多