Некоторое время искал это в Google, но все еще смотрел. Не мог ничего на нем нарисовать.
Использование PHP для запроса MS SQL Server через ODBC. Код ниже: (я окунул его в голые кости, как я пытался отладить это)
$SQL=<<<HEREDOC DECLARE @weekStart SMALLDATETIME; SET @weekStart = DATEADD(d,0, DATEDIFF(d,0,GETDATE())); SET @weekStart = DATEADD(d, 1-DATEPART(dw, GETDATE()), @weekStart); 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) ; HEREDOC; $dbUser = "someUser"; $dbPass = "somePw"; $connStr = 'Driver={SQL Server};Server=someServer;'; $conn = odbc_connect($connStr, $dbUser, $dbPass) or die("Cannot start ODBC connection"); $rs = odbc_exec($conn, $SQL); $r = odbc_fetch_array($rs); die('ok');
Получение предупреждения, которое я никогда не видел в строке odbc_fetch_array ():
Message: odbc_fetch_array() [function.odbc-fetch-array]: No tuples available at this result index
Я запустил запрос в SQL Server Mgmt Studio и возвращает один набор записей. Я использую ту же самую строку соединения и метод извлечения строк в других частях приложения без проблем. Есть идеи?