【发布时间】:2013-11-01 13:32:51
【问题描述】:
我一直在尝试执行一个存储过程并返回一个 XML 数据类型以通过 PHP 显示。
这是我所拥有的——一个简单的存储过程,getXML 如下:
CREATE PROCEDURE [dbo].[getXML]
AS
select --some fields
from --some table
for XML auto, elements
GO
当我通过 SQL Server Management Studio 执行该语句并输出 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_field 和 SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR)) 但我一定是错误地使用了它们并且无法让它工作。
非常感谢!
【问题讨论】:
标签: php xml sql-server-2008 stored-procedures