Я пытаюсь выполнить приведенный ниже код, но по какой-то причине он не возвращает никакого результата, не сообщает об ошибках, и я не могу понять, почему. Когда я вставляю запрос непосредственно в SQL Manager, он выполняется, и я получаю желаемый результат.
Я предполагаю, что это что-то с sqlsrv_query, которое интерпретирует по-разному, но я не могу понять, почему.
Это впервые; Я пытаюсь сделать это с помощью PHP, поэтому я изо всех сил, и я был бы признателен, если кто-нибудь может указать мне в правильном направлении.
$sql = "DECLARE @YearsToPass INT
SET @YearsToPass = 10;
WITH cte AS
(
SELECT DATEPART(YY, GETDATE())- @YearsToPass + 1 as Years
UNION ALL
SELECT Years + 1 as Years
FROM cte
WHERE Years + 1 <= YEAR(GETDATE())
)
SELECT cte.Years, DATEFROMPARTS(cte.Years, 12, 31), SUM(Inv.[Nabavna vrijednost])
FROM cte
left join [Drezga01].[dbo].[BI_Inventory01] Inv on Inv.[Datum knjiženja] <= DATEFROMPARTS(cte.Years, 12, 31)
group by cte.Years, DATEFROMPARTS(cte.Years, 12, 31)
ORDER BY cte.Years DESC";
$query = sqlsrv_query($conn_bi,$sql);
//error handling
if( $query === false ) {
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "code: ".$error[ 'code']."<br />";
echo "message: ".$error[ 'message']."<br />";
}
}
}
while($row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC)){
$zaliha_array[] = array('godina' => $row['godina'],
'zaliha' => abs($row['nabava']));
}
debugVar($zaliha_array);
Массив пуст, но об ошибках не сообщается. Результат существует и возвращается при выполнении запроса в SQL Management Studio. Есть идеи?