我在 Symfony 1.4/Propel 1.4 中有一个现有项目
出于数据库优化的目的,我创建了几个表的视图。功能/视图查询如下:
create function getPlayer() returns INTEGER DETERMINISTIC NO SQL return @getPlayer;
create view getPlay as
SELECT
CASE WHEN play.hiderid = getPlayer() THEN play.seekerid ELSE play.hiderid END AS opponent, play . *
FROM odd_play play, odd_match mat
WHERE (seekerid = getPlayer() OR hiderid = getPlayer())
AND play.id = mat.latestplay;
创建上述视图后,我可以编写以下简单的 SQL 查询来有效地获取所需的数据。
select play.*
from (select @getPlayer:=1 p) p, getPlay play;
现在的问题是,如何在 Symfony/Propel 1.4 中编写这个查询。有人可以建议如何在推进 1.4 中编写该查询吗?
在 J0K 评论后编辑
我正在尝试关注
class GetplayPeer extends BaseGetplayPeer {
static public function getOpponents($player){
$con = Propel::getConnection();
$sql = "select play.* from (select @getPlayer:=:player p) ply, getPlay play;";
$stmt = $con->prepare($sql);
$stmt->bindParam(":player",&$player,PDO::PARAM_INT);
$rs = $stmt->execute();
//$opponents = GetplayPeer::populateObjects($rs);
echo "opponents=<pre>";print_r($rs);exit;
}
} // GetplayPeer
我得到1
的是输出,这不是预期的输出。