我正在开发一个使用PHP和MSSQL的网络应用。我的一个要求是在Web应用程序的一部分中使用MSSQL中的字段描述。
我知道存储过程。在MSSQL中添加描述是:
EXEC sp_addextendedproperty
@name = N'Description', @value = 'Description goes here',
@level0type = N'Schema', @level0name = 'schemaname',
@level1type = N'Table', @level1name = 'tablename',
@level2type = N'Column', @level2name = 'columname'
GO
然而,我在将此转换为php时遇到了问题。
我正在尝试使用mssql_init / bind / execute命令,但我一直收到一个错误,我不确定如何进行故障排除。
PHP代码:
$query = mssql_init("sp_addextendedproperty",$dblink);
mssql_bind($query,"@name","N'Description'",SQLVARCHAR);
mssql_bind($query,"@value",$_POST['description'],SQLVARCHAR);
mssql_bind($query,"@level0type","N'Schema'",SQLVARCHAR);
mssql_bind($query,"@level0name","dbo",SQLVARCHAR);
mssql_bind($query,"@level1type","N'Table'",SQLVARCHAR);
mssql_bind($query,"@level1name",$_POST['tableselect'],SQLVARCHAR);
mssql_bind($query,"@level2type","N'Column'",SQLVARCHAR);
mssql_bind($query,"@level1name",$_POST['column_name'],SQLVARCHAR);
mssql_execute($query)
我的错误是:
An invalid parameter or option was specified for procedure 'sp_addextendedproperty'. (severity 16)
我对存储过程的了解不足以完全排除故障。有人可以帮助我吗?
答案 0 :(得分:1)
除非你只是简单地发布了示例代码,否则你会使用@level1name
两次。第二次出现应该是@level2name
。