简体   繁体   English

MSSQL xml path()查询在PHP中不起作用

[英]MSSQL xml path() query not working in PHP

The following query works fine when executed in Microsoft SQL Server Management Studio but when I run the query through php I get no output (nothing past the mssql_query() gets rendered). 以下查询在Microsoft SQL Server Management Studio中执行时工作正常,但是当我通过php运行查询时,没有任何输出(超过mssql_query()的任何内容都不会呈现)。

If i remove for xml path('') from the SQL query and again run in php, now everything past the mssql_query() gets rendered). 如果我从SQL查询中删除for xml path('')并再次在php中运行,则现在将呈现超出mssql_query()的所有内容)。

Does anybody know of any issues with xml path('') and PHP or whether im doing something wrong. 是否有人知道xml path('')和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 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()); 

Please NOTE: The following or die error never gets rendered. 请注意:永远不会呈现以下错误或死错误。

or die ("Error in query: $sql. ".mssql_error()); 

You have to retype the returned xml type into eg nvarchar. 您必须将返回的xml类型重新键入例如nvarchar。 Just like this: 像这样:

DECLARE @XML XML

SET @XML = (

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

)

SELECT CONVERT(NVARCHAR(MAX), @XML)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM