ストアド プロシージャを実行し、PHP を介して表示する XML データ型を返そうとしています。
これが私が持っているものです-次のような単純なストアドプロシージャ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出力とはまったく異なります。
ストアド プロシージャから PHP に XML 出力を取得するにはどうすればよいですか?
私は試しました: sqlsrv_get_field と SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR)) を試しましたが、それらを間違って使用していたに違いなく、動作させることができません。
どうもありがとう!