我在与MSSQL服务器的PHP ODBC连接中运行以下查询:
DECLARE @weekStart SMALLDATETIME;
SET @weekStart = DATEADD(d,0, DATEDIFF(d,0,GETDATE())); -- weekStart = TODAY @ 00:00:00 -- per http://weblogs.sqlteam.com/jeffs/archive/2007/01/02/56079.aspx
SET @weekStart = DATEADD(d, 1-DATEPART(dw, GETDATE()), @weekStart); -- subtract to last SUN @ 00:00:00
SELECT
DATEDIFF(week, Run_Date, @weekStart)
AS weeksAgo
,MIN(Current_List) AS list
,COUNT(*) AS cnt
,SUM(NoContact_90Days) AS noContact90
,SUM(NoContact_180Days) AS noContact180
,SUM(NoMtg_180Days) AS noMtg180
,SUM(NoMtg_360Days) AS noMtg360
FROM
[someDB].[DBO].[someTable]
WHERE
Current_List<>''
GROUP BY
DATEDIFF(week, Run_Date, @weekStart)
,Current_List
ORDER BY DATEDIFF(week, Run_Date, @weekStart)
;
不知怎的,当我通过我的连接运行它时,它似乎“破坏”连接进一步查询 - 也就是说,如果上面的查询是Q1,而其他一些简单的查询是Q2,那么以下工作正常:
$rs = odbc_exec($conn, $Q2);
var_dump($rs); // $rs is a valid result set
但是失败没有错误:
$rs1 = odbc_exec($conn, $Q1);
$rs2 = odbc_exec($conn, $Q2);
var_dump($rs2); // $rs2 is FALSE
在这两个例子中,Q2中的任何内容都没有改变,所以似乎Q1在某种程度上“破坏”了连接。
我已经玩了几天了,而且我遇到了一些事情让我觉得这是因为Q1返回了不止一个结果集,但我不太确定实际上是什么意思。
以下是我的问题:
谢谢!
修改:其他问题