2012-05-04 54 views
0

我需要幫助。我需要使用學說1.2教條原生sql查詢更新

我用Google搜索,我發現了一種使用原則,使原生SQL查詢來獲得一個更新的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內部服務器錯誤。

在執行UPDATE查詢時檢索有關查詢的信息的正確方法是什麼?

+1

取是一個選擇查詢,返回結果。更新不會產生任何結果。 –

+0

@MarcB迄今爲止的最佳答案。但是,如果查詢成功或者不成功,是否有一些答案? – chepe263

+0

您不應該執行本地更新/插入,因爲它是什麼'Doctrine ORM'是爲'Associations'製作的。 – Broncha

回答

3

爲什麼不使用default update from doctrine而不是行sql?

$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

我知道最好使用教條的默認更新,但我使用原始的sql,因爲我有很多查詢一次執行。 – chepe263

+0

我已經用pdo解決方案更新了我的答案 – j0k

+0

Gracias!我會在幾秒內嘗試它 – chepe263