查询在SQL查询分析器上工作,但在PHP mssql_Query()上失败
我有一个具有多个连接的复杂MSSQL查询。当我使用SQL查询分析器进行查询时,它会在大约5分钟后返回结果。但是,当我使用PHP查询在SQL查询分析器上工作,但在PHP mssql_Query()上失败,php,sql,sql-server,Php,Sql,Sql Server,我有一个具有多个连接的复杂MSSQL查询。当我使用SQL查询分析器进行查询时,它会在大约5分钟后返回结果。但是,当我使用PHPmssql\u query()函数进行查询时,它返回一个错误mssql\u query()failed,没有有用的信息 以下是到目前为止对这个问题的分析 php服务器的响应时间限制不是问题。时间限制设置为无限。事实上,这个查询在不同的生产服务器上大约30秒后返回结果 我尝试使用mssql_get_last_message()获取有关失败原因的更多详细信息。但到目前为止,运
mssql\u query()
函数进行查询时,它返回一个错误mssql\u query()failed
,没有有用的信息
以下是到目前为止对这个问题的分析
SELECT L.[strStation], L.[nEntitlement1], L.[nEntitlement2], O.nOrders,
L.[nEntitlement3], L.[nEntitlement4], S.[strFirm], S.[nStatus],
S.[nFeatures], S.[nFeatures2], S.[nFeatures3], S.[strDescription]
FROM [tblLogin] AS L
LEFT JOIN [tblStation] AS S ON L.[strStation] = S.[strStation]
LEFT JOIN (
SELECT [strStation], COUNT(DISTINCT(nRecordId)) as nOrders
FROM [tblOrder]
WHERE [timeOrderDate] >= '2013-06-04' AND
[timeOrderDate] <= '2013-06-28'
GROUP BY strStation
) AS O ON O.[strStation] = S.[strStation]
WHERE L.[timeLoginTime] >= '2013-06-04 00:00:00' AND
L.[timeLoginTime] <= '2013-06-28 23:59:59' AND
S.[strFirm] in ('FIRMA','FIRMB')
编辑I
我缩小到一个点。当我从SELECT子句中删除O.nOrders
部分时,查询工作得非常好
但是为什么
编辑II
这让我快发疯了。查询有时甚至与SELECT子句中的
O.nOrders
部分一起工作。这对我来说似乎完全是随机的,但我知道在这个世界上没有真正的随机……这应该是有原因的……那么你选择了你的数据库了吗<代码>mssql_选择_数据库(“yourdb”)代码>您应该使用PDO。然后你可以用try-catch。@Akam-Yes。我添加了用于查询database@A.O.我希望我可以,但目前我没有选择,因为我们是在Windows和Linux上用MSSQL 2000开发的。用法:如果(!MSSQL\u select\u db('dbsdb',$link')死亡(var\u dump(MSSQL\u get\u last\u message())
$link = mssql_connect('192.168.251.90', 'sa', '');
if (!mssql_select_db('dbsdb', $link))
var_dump(mssql_get_last_message());
$query = mssql_query($sql, $link);