Php 将XML数据作为输入传递给存储过程

Php 将XML数据作为输入传递给存储过程,php,sql,sql-server,sql-server-2008,Php,Sql,Sql Server,Sql Server 2008,我的XML数据/记录已传递到SQL存储过程,SP已成功运行加载的记录。但有时我会收到以下错误消息 错误 Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in MS SQL存储过程 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[AddEmployee] (@XmlString n

我的XML数据/记录已传递到SQL存储过程,SP已成功运行加载的记录。但有时我会收到以下错误消息

错误

Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in
MS SQL存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddEmployee] (@XmlString ntext)
AS
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF
DECLARE @XmlInput XML;
SET @XmlInput = CAST(@XMLHeader AS XML)
INSERT INTO Employee
(
    ID,
    EmpName,
    Sal
)
Select
T.N.value('ID[1]', 'varchar(250)') as CompanyName,
T.N.value('EmpName[1]', 'varchar(250)') as WebsiteUrl,
T.N.value('Sal[1]', 'varchar(250)') as PrimaryServices
from @XmlInput.nodes('/Record/Emp') as T(N)
PHP代码片段

$procName = "AddEmployee";
$xml_data = "<record><Emp><ID>6</ID><EmpName>ganesh</EmpName><Sal>6500</Sal></Emp><Emp><ID>7</ID><EmpName>jayachandran</EmpName><Sal>7500</Sal></Emp><Emp><ID>8</ID><EmpName>kotis</EmpName><Sal>8500</Sal></Emp></Record>"
$params[0][0] = "XmlString";
$params[0][1] = $xml_data;
$params[0][2] = SQLVARCHAR;

$proc = mssql_init(proc_name,$connid);
for($i=0;$i<count($params);$i++){
    $rtn = mssql_bind($proc,'@'.$params[$i][0],$params[$i][1],$params[$i][2]);      
}
$rtn_status = mssql_execute($proc);
$procName=“AddEmployee”;
$xml_data=“6ganesh65007jayachandran75008kotis8500”
$params[0][0]=“XmlString”;
$params[0][1]=$xml\u数据;
$params[0][2]=SQLVARCHAR;
$proc=mssql_init(proc_name$connid);

对于($i=0;$iYou缺少根
,它应该位于
之前,谢谢您的指点,但我已经在存储过程本身中添加了它。您能解决这个问题吗?我必须做同样的事情,我想知道如何做,对于这个问题,我将很快与大家分享