MSSQL xml path() запрос не работает в PHP
Следующий запрос работает нормально при выполнении в Microsoft SQL Server Management Studio, но когда я запускаю запрос через php, я не получаю никакого вывода (ничего, кроме mssql_query(), не обрабатывается).
Если я удалю for xml path('')
из запроса SQL и снова запустите в php, теперь все, что находится за пределами mssql_query(), будет обработано).
Кто-нибудь знает какие-либо проблемы с XML-пути ('') и PHP или я делаю что-то не так.
SELECT DISTINCT x1.AcademicYearID, x1.RefNo, x1.Source, x1.Surname, x1.FirstForename, x1.Heard,convert(VARCHAR, x1.Date, 121) as Date, Notes, School,
(SELECT DISTINCT x2.Subject + ', ' as 'data()' from [db].[dbo].[vCC_Mkt_Enquiries] x2 WHERE x1.RefNo = x2.RefNo AND x1.Source = x2.Source for xml path('')) as Subject
FROM [db].[dbo].[vCC_Mkt_Enquiries] x1
WHERE x1.AcademicYearID = '13/14'
PHP
$sql = "SELECT DISTINCT x1.AcademicYearID, x1.RefNo, x1.Source, x1.Surname, x1.FirstForename, x1.Heard,convert(VARCHAR, x1.Date, 121) as Date, Notes, School,
(SELECT DISTINCT x2.Subject + ', ' as 'data()' from [db].[dbo].[vCC_Mkt_Enquiries] x2 WHERE x1.RefNo = x2.RefNo AND x1.Source = x2.Source for xml path('')) as Subject
FROM [db].[dbo].[vCC_Mkt_Enquiries] x1
WHERE x1.AcademicYearID = '$year'";
$internal_events = mssql_query($sql, $connection) or die ("Error in query: $sql. ".mssql_error());
Пожалуйста, ОБРАТИТЕ ВНИМАНИЕ: Следующая ошибка или ошибка не будет отображена
or die ("Error in query: $sql. ".mssql_error());
1 ответ
Вы должны перепечатать возвращаемый тип xml, например, в nvarchar. Именно так:
DECLARE @XML XML
SET @XML = (
SELECT something
FROM sometable
FOR XML PATH('items')
)
SELECT CONVERT(NVARCHAR(MAX), @XML)