Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将XML SQL数据类型从存储过程返回到PHP_Php_Xml_Sql Server 2008_Stored Procedures - Fatal编程技术网

如何将XML SQL数据类型从存储过程返回到PHP

如何将XML SQL数据类型从存储过程返回到PHP,php,xml,sql-server-2008,stored-procedures,Php,Xml,Sql Server 2008,Stored Procedures,我一直在尝试执行一个存储过程并返回一个XML数据类型,以便通过PHP显示 下面是我所拥有的—一个简单的存储过程,getXML,如下所示: CREATE PROCEDURE [dbo].[getXML] AS select --some fields from --some table for XML auto, elements GO 当我通过SQLServerManagementStudio执行该语句并输出一个XML结果集时,该语句运行良好 如何将结果集显示在php页面上 到目前为止,

我一直在尝试执行一个存储过程并返回一个XML数据类型,以便通过PHP显示

下面是我所拥有的—一个简单的存储过程,getXML,如下所示:

CREATE PROCEDURE [dbo].[getXML] 
AS

select --some fields
from --some table
for XML auto, elements

GO
当我通过SQLServerManagementStudio执行该语句并输出一个XML结果集时,该语句运行良好

如何将结果集显示在php页面上

到目前为止,我能够在PHP中执行以下操作:

<?php

  $server = 'thisServer';
  // Connect to MSSQL
 $link = mssql_connect($server, 'user', 'pass');

  if (!$link) {

      die('Something went wrong while connecting to MSSQL');

  }


  // Create a new statement
  $stmt = mssql_init('dbo.getXML');


  // Execute the statement

  $result = mssql_execute($stmt);
  $count = mssql_num_rows($result);
  if($count == 0)
  {
    print "<p>No results</p>";
  }
  else
  {
    $row = mssql_fetch_assoc($result);
        foreach($row as $field => $value):
            $field
        endforeach;

    mssql_data_seek($result, 0);

    while($row = mssql_fetch_assoc($result))
    {
    foreach($row as $value):
        =$value
    endforeach;
    }

    mssql_free_statement($stmt);
?>

虽然我可以把结果打印出来,但看起来很糟糕。。。与XML输出完全不同

如何将存储过程中的XML输出转换为php

我尝试过:sqlsrv_get_字段和sqlsrv_PHPTYPE_STREAM(sqlsrv_ENC_CHAR)),但我一定是错误地使用了它们,无法使其工作

多谢

DECLARE @XML XML

SET @XML = (

SELECT something 
FROM sometable
FOR XML PATH('items'), ROOT('root')

)

SELECT CONVERT(NVARCHAR(MAX), @XML)