【问题标题】:ODBC fetch results from stored procedure in PHPODBC从PHP中的存储过程中获取结果
【发布时间】:2015-03-11 14:04:58
【问题描述】:

我在从对 ODBC 连接的存储过程调用中获取结果时遇到了一点问题。

我不习惯通过 ODBC 从 PHP 调用存储过程,而且我发现文档不完整(或者我可能遗漏了一些东西)。

下面的代码似乎可以工作。但我找不到从$result 获取结果的方法。

$connect = odbc_connect("dsn","user","password");

$statement = "storedprocedure('IN value','OUT value_1','OUT value_2')";

$result = odbc_exec ($connect,$statement);

odbc_close($connect);

如果我 echo $result; 它传递给我一个“资源 ID#”,那么某些东西似乎可以工作。但我无法弄清楚获取部分:)

【问题讨论】:

    标签: php stored-procedures odbc fetch


    【解决方案1】:

    您的调用有效,odbc 向您返回了一个资源引用,然后您需要自己从中获取结果:http://php.net/manual/en/function.odbc-fetch-array.php

    【讨论】:

    • 我尝试做$print = odbc_fetch_array ($result]; 给我一个错误“警告:odbc_fetch_array(): No tuples available at this result index”
    • 好的,所以我对存储过程的假设是错误的。我应该从 IN/OUT 参数中意识到这一点。 odbc_exec 不可能。如果您需要使用 INOUT 或 OUT 参数调用存储过程,建议的解决方法是为您的数据库使用本机扩展(例如,mssql 用于 MS SQL Server,或 oci8 用于 Oracle)。
    • 好的 - 我想我可能会在这里遇到一点挑战。我通过 ODBC 调用的来源是 Aspentech InfoPlus.21 - 不确定是否存在和扩展。或许普通的 SQL 语句将是解决方案。
    • 我对该数据库及其存储过程的工作方式一无所知。一些 dbs 使用 OUT 参数和游标返回数据,其他只需要 SELECT 或 RETURN。看看他们的文档,看看 db 有哪些从存储过程返回的选项。
    • 对于其他偶然发现这个线程的人......我们最终使用普通的 SQL 查询而不是存储过程...... ODBC、IP21 和 PHP 是一个糟糕的鸡尾酒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2018-12-27
    • 2010-11-13
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多