2012-01-10 14 views
2

doctrine 2は何らかの種類のものをサポートしていますか "select into" -syntax?純粋なMySQLでINSERT INTO table_a select * from table_b from doctrine2

それはこのようなものになるだろう:私はまだ成功事例のせずに、マニュアルを確認

INSERT INTO tbl_temp2 (fld_id) 
    SELECT tbl_temp1.fld_order_id 
    FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; 

答えて

7

バージョン2.3.1のDoctrineを参照しています: このバージョンでは、ORM/EntityManagerからデータベースへの現在の接続を取得できます。 接続は1つしかありません(これはDoctrine 1では異なります)。ここで は、インサート・セレクト・タスクのために私のために働いていたものです:Using Raw SQL with Doctrine PDOのcompatiblityための「生のSQL」を確認する方法のコード例を:

$db = $this->_em->getConnection(); 
$query = "INSERT INTO table2 (myfield) SELECT table1.myfield FROM table1 WHERE table1.id < 1000"; 
$stmt = $db->prepare($query); 
$params = array(); 
$stmt->execute($params); 

ここで興味深いの答えもあります。

+0

私は同じ問題を抱えていて、このprepare()プロパティはクエリにはありませんでした。しかし、私はそれを追加するとき、私にこのエラーを与えたFatalErrorException:エラー:未定義のメソッドDoctrine \ ORM \ Query :: prepare()をコントローラで呼び出す – numerah