使用Zend_Db和SQL Server在服务器之间加入查询

时间:2011-08-17 10:23:15

标签: php sql-server zend-framework

在SQL Server中,有一种语法可以跨两台服务器连接查询,您可以使用以下命令:

SELECT 
    SUM(StatsTotal) AS ChannelTotal 
FROM [SERVER\DB4_1].DBNAME.dbo.Stats AS Stats

这意味着我可以连接到一台服务器,然后使用名为“链接服务器”的SQL Server功能要求查询在另一台服务器上执行。我的问题是在Zend_Db中无法使用Zend_Db_Select可以看到的此功能。

目前我正在尝试使用以下代码:

$select = $this->db->select();
$select->from(array('Stats' => '[SERVER\DB4_1].DBNAME.dbo.Stats'), array('ChannelTotal' => new Zend_Db_Expr('SUM(StatsTotal)')));
echo $select->assemble();

这给了我以下SQL响应:

SELECT SUM(StatsTotal) AS "ChannelTotal" FROM "[SERVER\DB4_1]"."DBNAME" AS "Stats"

显然这不起作用,有没有另外一种方法可以做到这一点,而不必手写这些查询?

1 个答案:

答案 0 :(得分:0)

使用'Stats' => new Zend_Db_Expr('[SERVER\DB4_1].DBNAME.dbo.Stats')应该有效。