【问题标题】:SQL Server stored procedure error while executing from php从 php 执行时 SQL Server 存储过程错误
【发布时间】:2010-10-15 18:12:35
【问题描述】:

我正在尝试从 php 执行存储过程。

在 php 代码中 iam 向存储过程发送一个整数参数

$orderId =824;
$result =mssql_bind($sp, "@orderID", $orderId, SQLINT1, true, false);

我收到一个错误

mssql_execute() [function.mssql-execute]:消息:形式参数“@orderID”未声明为 OUTPUT 参数,但实际参数在请求的输出中传递。 (16 级)

谁能说出原因

【问题讨论】:

    标签: php sql sql-server


    【解决方案1】:

    document of mssql_bind 的签名为:

    bool mssql_bind  ( resource $stmt  , string $param_name  , mixed &$var  , int $type  [, bool $is_output = false  [, bool $is_null = false  [, int $maxlen = -1  ]]] )
    

    所以您的问题是您将 $is_output 设置为 true。

    使用

    $orderId =824;
    $result =mssql_bind($sp, "@orderID", $orderId, SQLINT1, false, false);
    

    【讨论】:

    • 我怀疑是这样,正如 Linto 所说的“向存储过程发送一个整数参数”
    • 我一切正常,但有一个问题。当我发送小 oderid(例如 1,225,100,596,..)时,它可以工作,但是当我发送大订单 ID 例如(100303)时,它没有给出输出,尽管有是这个订单的记录。所以我用 all most all 更改了 mssql_bind 的类型参数,然后我会得到警告“警告:mssql_execute() [function.mssql-execute]: WARNING! Some character(s) could不被转换成客户端的字符集。未转换的字节被更改为问号('?')。(严重性 16)“。你有什么想法
    • 您的问题是 SQLINT1 数据类型。见php.net/manual/en/mssql.constants.php。 SQLINT1 是单字节,-128 到 127。请改用 SQLINT4。
    • 非常感谢 SamStephens。我的问题已经解决了
    【解决方案2】:

    您必须创建存储过程,以便将参数指示为 OUTPUT 变量。

    DECLARE MyProc (@orderID int OUTPUT) AS ...
    

    【讨论】:

    • 所以我需要在 php 代码中创建特定的存储过程吗?我的意思是来自 sql server 的存储过程
    • 没有。如果存储过程需要将@orderID 参数作为输出参数,您可以使用创建它的相同技术/工具来更改它。您是否希望存储过程将 @orderID 值发送到您的 PHP 代码?如果否,那么您想查看@SamStephens 的答案并保持程序不变。
    • 我一切正常,但有一个问题。当我发送小 oderid(例如 1,225,100,596,..)时,它可以工作,但是当我发送大订单 ID 例如(100303)时,它没有给出输出,尽管有是这个订单的记录。所以我用 all most all 更改了 mssql_bind 的类型参数,然后我会得到一个警告“警告:mssql_execute() [function.mssql-execute]: WARNING! Some character(s) could不被转换成客户端的字符集。未转换的字节被更改为问号('?')。(严重性 16)“。你有什么想法
    • 嗨,鲍勃,我从 SamStephens 那里得到了最后一个问题的答案,非常感谢鲍勃的关注。我的问题已经结束了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2019-02-05
    • 2023-03-17
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多