我一直在问PDO这个问题,在我的测试中会出现这个错误。
<?php
require_once('simpletest/unit_tester.php');
require_once('simpletest/reporter.php');
require_once('../model.php');
class TestOfCallMapper extends UnitTestCase {
function testOfReturnsAll() {
}
function setUp() {
R::setup("mysql:host=localhost;dbname=poo", root, '');
$this->destroySchema();
$this->createSchema();
}
function tearDown() {
$this->destroySchema();
}
private function createSchema() {
R::exec(file_get_contents('../database/create_schema.sql'));
}
private function destroySchema() {
R::exec(file_get_contents('../database/destroy_schema.sql'));
}
}
$test = new TestOfCallMapper('Test of CallMapper Methods');
$test->run(new HTMLReporter());
我很确定发生的事情是create_schema文件中的内容继续执行并阻止其他查询运行,因为它告诉我查询是无缓冲的。我不再使用PDO,因为这对我来说没有意义,于是开始使用另一个名为Redbean的ORM。不幸的是,我又犯了一个令人恼火的错误,我似乎无法修复它,因为显然Redbean位于PDO之上。当我使用PDO时,我尝试设置该选项以启用缓冲查询,但它不起作用。在我的测试之外,这种方法似乎工作得很好,但我不确定这是否可以接受。