2012-05-04 2 views
0

도움이 필요합니다. 나는doctrine native sql 쿼리 업데이트

내가 봤 나는 교리를 사용하여 네이티브 SQL 쿼리를 만들 수있는 방법을 발견 교리 1.2을 사용하여 업데이트 SQL 쿼리의 결과를 얻을 필요가

$preparequerystring = "UPDATE mdw_reportes_operacion SET mmaplicado = 2.742495126705653 WHERE id = 5294;"; 
     $con = Doctrine_Manager::getInstance()->connection(); 
     $st = $con->executeUpdate($preparequerystring,array(false)); 
     print_r($st); 
나는 몇 가지 정보를 검색하는 방법을 알고 싶습니다

내가 실행중인 쿼리에 대해. 나는 (으)로 시도했다

$result = $st->fetch(); 

그러나 500 내부 서버 오류를 반환합니다.

업데이트 쿼리를 수행 할 때 쿼리에 대한 정보를 검색하는 올바른 방법은 무엇입니까?

+1

페치이다 쿼리를 사용하여 결과를 반환합니다. 업데이트로 인해 결과가 생성되지 않습니다. –

+0

@MarcB 지금까지 최선의 대답. 하지만 쿼리가 성공했는지 여부에 대한 답변을 얻으 려니? – chepe263

+0

네이티브 업데이트/삽입은'어소시에이션 '에 대해'교리 ORM'이 만들어지기 때문에하지 마십시오. – Broncha

답변

3

행 sql 대신 default update from doctrine을 사용하지 않는 이유는 무엇입니까?

$q = Doctrine_Query::create() 
     ->update('MdwReportesOperacion') 
     ->set('mmaplicado', '2.742495126705653') 
     ->where('id = ?', array(5294)); 

$rows = $q->execute(); 

echo $rows; 

편집 :

나는 원시 교리 쿼리에서 결과를 검색하는 방법을 알고하지 않았다,하지만 여전히 PDO 쿼리를 사용할 수 있습니다 선별을 위해

// update the way you want to retrieve database information 
$database = sfYaml::load(dirname(__FILE__).'/../config/databases.yml'); 
$param = $database['all']['doctrine']['param']; 
$conn = new PDO($param['dsn'], $param['username'], $param['password']); 

// and then perform the query and retrieve the result 
$rows = $conn->exec("UPDATE mdw_reportes_operacion SET mmaplicado = 2.742495126705653 WHERE id = 5294;"); 
echo $rows; 
+0

doctrine의 기본 업데이트를 사용하는 것이 좋지만 한 번에 많은 쿼리를 수행하기 때문에 원시 SQL을 사용합니다. – chepe263

+0

pdo 솔루션으로 내 대답을 업데이트했습니다. – j0k

+0

Gracias! 몇 초 후에 시도해 보겠습니다. – chepe263