2012-05-04 20 views
0

私は助けが必要です。私はいくつかの情報を取得する方法を知っていただきたいと思い、私はGoogleで検索し、私は教義doctrineネイティブ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); 

を使用して、ネイティブSQLクエリを作成する方法を見つけた教義1.2

を使用して、更新、SQLクエリの結果を取得する必要があります私が実行しているクエリについて私は試しました

$result = $st->fetch(); 

しかし、500内部サーバーエラーを返します。

UPDATEクエリの実行時にクエリに関する情報を取得する正しい方法は何ですか?

+1

フェッチは、選択のためでありますクエリを実行して結果を返します。更新プログラムによって結果が生成されることはありません。 –

+0

@MarcBの回答がこれまでのところ。しかし、クエリが成功したかどうかにかかわらず、何らかの答えを得るにはどうにかしていますか? – chepe263

+0

'Association 'の' Doctrine 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からのデフォルトの更新を使う方が良いと知っていますが、私は一度に多くのクエリを実行するためにraw SQLを使用します。 – chepe263

+0

私はpdoのソリューションで私の答えを更新しました – j0k

+0

Gracias!私は数秒でそれを試してみます – chepe263