我有一个CodeIgniter应用程序,可以访问57个MSSQL数据库,只需点击一下按钮即可生成月度报告。
当我生成报告时,它可以从大多数服务器访问和获取数据。但是,有些服务器只返回如下所示的错误消息。
我可以通过打开'db_debug'标志来生成Unable to set query
错误消息。最后一行是mssql_get_last_message()
的结果。
mssql_query(): Query failed
mssql_query(): Unable to set query
Query error: Changed database context to 'dbsdb'
这是我用来获取数据的查询
SELECT * 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-12-03' AND
[timeOrderDate] <= '2013-12-26'
GROUP BY strStation
) AS O ON O.[strStation] = S.[strStation]
WHERE L.[timeLoginTime] >= '2013-12-03 00:00:00' AND L.[timeLoginTime] <= '2013-12-03 23:59:59'
奇怪的是,如果我将日期范围设置为仅一天,查询有时会起作用。例如,当日期范围为“2013-12-26”时,此查询有效。但是,当日期范围为“2013-12-03”时,它不起作用。当我使用查询分析器手动查询数据库时,“2013-12-03”获得172行,“2013-12-26”获得126行。
这些是一些可能有用的phpinfo数据。
mssql.connect_timeout = Unlimited
mssql.timeout = Unlimited
memory_limit = 2048M
max_execution_time = 0
这些是我用来获取数据的代码。
$sql = "...";
$dbgroup = array(
'hostname' => ...,
'username' => ...,
'password' => ...,
'database' => 'dbsdb',
'dbdriver' => 'mssql',
'db_debug' => true,
'pconnect' => false,
);
$db = $this->load->database($dbgroup, true);
$result = $db->query($sql)->result();
答案 0 :(得分:0)
我在组织中使用php和Zendframework 1遇到了同样的问题。不一致导致我们确定问题不在代码或服务器中,而是数据库主机限制我们的服务的结果。问题只发生在使用mssql的新ERP时。
不确定这对你是否一样。