2013-11-25 2 views
1

다음 쿼리는 Microsoft SQL Server Management Studio에서 실행될 때 제대로 작동하지만 PHP를 통해 쿼리를 실행하면 출력이 없습니다. mssql_query()가 렌더링되지 않습니다.PHP에서 MSSQL xml path() 쿼리가 작동하지 않습니다.

SQL 쿼리에서 for xml path('')을 제거하고 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()); 

답변

0

반환 된 xml 유형을 예 : nvarchar. 다음과 같이하면됩니다.

DECLARE @XML XML 

SET @XML = (

SELECT something 
FROM sometable 
FOR XML PATH('items') 

) 

SELECT CONVERT(NVARCHAR(MAX), @XML) 
관련 문제