如何使用PHP ODBC客户端捕获由print语句生成的T-SQL输出?

洛伦兹·迈耶(Lorenz Meyer)

我有一个存储过程,该过程使用事务print语句返回其结果,以返回其结果。

到目前为止,我一直使用php_mssql扩展名及其mssql_get_last_message()功能来获取返回的文本。

由于PHP放弃了对mssql扩展的支持,因此我决定退回到该php_odbc扩展。

我面临的问题是我无法使用捕获信息odbc_errormsg()有没有一种方法可以使用PHP和ODBC检索打印消息?

我找到了解决的问题的一些有趣的问题printodbc,但没有涉及到PHP。

带有mssql的PHP代码(有效):

$query = "exec dbo.PdaBLCreer 12345";
$res = mssql_query($query);
$message = mssql_get_last_message();

带有odbc的PHP代码(无效,$ message始终为空):

$query = "exec dbo.PdaBLCreer 12345";
$res = odbc_exec($connection, $query);
$message = odbc_errormsg($connection);

T-SQL存储过程

CREATE PROCEDURE dbo.PdaBLCreer
    @iArgument int
AS
BEGIN
    ...
    PRINT @vNr
    RETURN @vNr
END
洛伦兹·迈耶(Lorenz Meyer)

我找到了解决方法。它适用于return存储过程值,但不适用于print由于我的存储过程可以打印并返回,因此无需修改即可从过程中获取结果:

替换旧的5.2 PHP代码:

$query = "exec dbo.PdaBLCreer 12345";
$res = mssql_query($query);
$message = mssql_get_last_message();

与此PHP 5.4代码一起使用php_odbc:

$query = "DECLARE @return_status int
    EXEC @return_status = dbo.PdaBLCreer 12345
    SELECT 'ReturnStatus' = @return_status";
$res = odbc_exec($connection, $query);
$line = odbc_fetch_array($res);
$message = $line['ReturnStatus'];

该解决方案是有限的。当查询返回表格结果和消息时,它将不起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过管道生成SQL输出

来自分类Dev

如何在ODBC本机客户端中获取SQL Server DateTime字段

来自分类Dev

使用PHP访问客户端的SQL数据库

来自分类Dev

什么是更少的服务器应变:PHP IF语句或SQL SELECT ALL,过滤客户端

来自分类Dev

PHP/SQL 奇怪的输出

来自分类Dev

执行生成的sql语句(输出)

来自分类Dev

如果不是 ODBC,mysql、postgresql 和 Oracle sql 对它们的命令行客户端使用什么?

来自分类Dev

如何使用T-SQL在SQL Server中输出非结构化文件?

来自分类Dev

PHP函数的输出如何使用print_r起作用?

来自分类Dev

Flask在客户端使用SQL查询

来自分类Dev

在iOS客户端中使用端点:什么是“ ServiceGenerator的输出”?

来自分类Dev

如何调用由OData客户端生成器生成的OData函数/动作?

来自分类Dev

如何配置Liquibase Maven插件为Oracle生成SQL输出

来自分类Dev

在 SQL Server 中使用 XML OPTIONS 生成 XML 输出

来自分类Dev

使用DBI启用SQL跟踪时,如何防止语句多次输出?

来自分类Dev

如何使用具有多个表的管道生成SQL输出

来自分类Dev

如何使用PIVOT或UNPIVOT T-SQL语法实现此输出?

来自分类Dev

在另一个SQL语句中使用SQL语句的输出?

来自分类Dev

如何配置后端服务器以使用由 aws gateway api 生成的客户端 SSL 证书?

来自分类Dev

在iOS + PHP中使用Braintree生成客户端令牌

来自分类Dev

使用 Puppeteer 在客户端生成 PDF

来自分类Dev

如何更改SQL输出消息

来自分类Dev

如何获取SQL格式的输出

来自分类Dev

如何更改 SQL 输出的格式?

来自分类Dev

如何在x-64上为x86安装Microsoft SQL Server 2012本机客户端ODBC驱动程序

来自分类Dev

如何使用代码生成的SOAP客户端?

来自分类Dev

如何在客户端使用netcat生成shell?

来自分类Dev

json 模式如何使用 nswag 生成 swager 客户端

来自分类Dev

使用SQL Join的NULL输出

Related 相关文章

  1. 1

    如何通过管道生成SQL输出

  2. 2

    如何在ODBC本机客户端中获取SQL Server DateTime字段

  3. 3

    使用PHP访问客户端的SQL数据库

  4. 4

    什么是更少的服务器应变:PHP IF语句或SQL SELECT ALL,过滤客户端

  5. 5

    PHP/SQL 奇怪的输出

  6. 6

    执行生成的sql语句(输出)

  7. 7

    如果不是 ODBC,mysql、postgresql 和 Oracle sql 对它们的命令行客户端使用什么?

  8. 8

    如何使用T-SQL在SQL Server中输出非结构化文件?

  9. 9

    PHP函数的输出如何使用print_r起作用?

  10. 10

    Flask在客户端使用SQL查询

  11. 11

    在iOS客户端中使用端点:什么是“ ServiceGenerator的输出”?

  12. 12

    如何调用由OData客户端生成器生成的OData函数/动作?

  13. 13

    如何配置Liquibase Maven插件为Oracle生成SQL输出

  14. 14

    在 SQL Server 中使用 XML OPTIONS 生成 XML 输出

  15. 15

    使用DBI启用SQL跟踪时,如何防止语句多次输出?

  16. 16

    如何使用具有多个表的管道生成SQL输出

  17. 17

    如何使用PIVOT或UNPIVOT T-SQL语法实现此输出?

  18. 18

    在另一个SQL语句中使用SQL语句的输出?

  19. 19

    如何配置后端服务器以使用由 aws gateway api 生成的客户端 SSL 证书?

  20. 20

    在iOS + PHP中使用Braintree生成客户端令牌

  21. 21

    使用 Puppeteer 在客户端生成 PDF

  22. 22

    如何更改SQL输出消息

  23. 23

    如何获取SQL格式的输出

  24. 24

    如何更改 SQL 输出的格式?

  25. 25

    如何在x-64上为x86安装Microsoft SQL Server 2012本机客户端ODBC驱动程序

  26. 26

    如何使用代码生成的SOAP客户端?

  27. 27

    如何在客户端使用netcat生成shell?

  28. 28

    json 模式如何使用 nswag 生成 swager 客户端

  29. 29

    使用SQL Join的NULL输出

热门标签

归档