我正在尝试构建此SQL查询:
update shop_product set flags=flags^(flags&1024);
使用Doctrine 1.2。
我尝试过这些方法:
Doctrine_Query::create()
->update('Model_ShopProduct p')
->set('p.flags', 'p.flags^(p.flags&' . $flag);
也:
Doctrine_Query::create()
->update('Model_ShopProduct p')
->set('p.flags', new Doctrine_Expression('p.flags^(p.flags&?'), $flag);
许多类似的变化没有成功。请帮助mi。
答案 0 :(得分:1)
实现这一目标的最简单方法是从Doctrine
抢救数据库连接并在其上执行原始sql查询,例如
$connection = Doctrine_Manager::getCurrentConnection()->getDbh();
//connection is an ordinary PDO object
$connection->query("update shop_product set flags=flags^(flags&1024);");
如果您不熟悉PDO,PDO::query
上的the documentation就行了。