【问题标题】:Error passing parameter to MSSQL Stored Procedure from PHP从 PHP 向 MSSQL 存储过程传递参数时出错
【发布时间】:2011-08-22 12:47:37
【问题描述】:

我正在尝试从 php 脚本调用 MS SQL SP。当我尝试调用需要一个参数作为输入的过程(现在硬编码参数)时,它失败了。代码如下:

$link = mssql_connect('xx.xx.xx.xx', 'xx', 'xx');
$report_id=79;
$proc=mssql_init ('usp_IVR_FormatImportData', $link );
mssql_bind ($proc, '@ReportID', $report_id, SQLINT4, FALSE); 
mssql_execute ($stmt);

我得到的错误是这样的:

PHP Warning:  mssql_execute (): message: Conversion failed when converting the varchar value ':2' to data type int. (severity 16) in /var/lib/asterisk/wbrivr/scripts/test.php on line 24

PHP Warning:  mssql_execute(): stored procedure execution failed in /var/lib/asterisk/wbrivr/scripts/mobin3.php on line 24

当我需要调用没有输入参数的 SP 时,相同的代码可以正常工作,所以我想知道这是参数不匹配还是错误行所指示的问题。我正在运行 php 5.1.6,服务器是 SQL Server 2008。

只运行下面这行代码也会产生同样的错误。

 mssql_query("exec usp_IVR_FormatImportData 79", $conn);

【问题讨论】:

    标签: php sql-server-2008 stored-procedures


    【解决方案1】:

    检查数据类型

    转换它。

    【讨论】:

    • 谢谢萨尔曼。 MS SQL 存储过程中的数据类型是 BIGINT。我尝试了从 SQLINT1 到 VARCHAR 的所有方法,但没有任何效果。
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多