0

我在 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的是输出,这不是预期的输出。

4

0 回答 0