2010-11-19 4 views
1

PDO에서이 문제가 계속 발생합니다.이 테스트에서이 오류가 발생합니다.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를 사용할 때 버퍼링 된 쿼리를 설정하는 옵션을 설정했지만 작동하지 않았습니다. 내 테스트를 벗어나면 메서드가 정상적으로 작동하는 것처럼 보일 수 있지만 실제로 받아 들일 수 있는지는 잘 모르겠습니다.

+0

PDO를 사용하는 코드를 작성한 클래스가 아니라 PDO 코드를 보여 주도록 도와주십시오. 기본적으로 결과를 반환하는 쿼리를 실행하는 경우 다른 쿼리를 실행하거나 적어도 버퍼를 지우거나 연결을 닫은 후에 결과를 가져와야합니다. –

+0

PDO 코드 자체가 어디 있는지 알 수 없습니다. 이 제 3 자 ORM에서 어딘가에 사라집니다. PHP는 유용하게 말해주지 않습니다. –

+0

오, 나는 그들이 자신의 기능이라고 생각했다. –

답변

0

새 서버로 전환 할 때이 문제가 해결되었습니다. 나는 그 문제를 결코 발견하지 못했다.

관련 문제