加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从PERL中的DBI语句转储准备的sql查询

发布时间:2020-12-15 21:16:21 所属栏目:大数据 来源:网络整理
导读:我在Perl中使用DBI连接到我的PostgreSQL数据库. 一切正常,但在我的调试(打印结果等)中,我无法看到perls DBI模块准备的查询是否真的正确. 我有这样的事情: $sth-prepare( qq{SELECT * FROM company WHERE companyname LIKE ? AND city = ?});$sth-execute( $
我在Perl中使用DBI连接到我的PostgreSQL数据库.
一切正常,但在我的调试(打印结果等)中,我无法看到perls DBI模块准备的查询是否真的正确.

我有这样的事情:

$sth->prepare( qq{SELECT * FROM company WHERE companyname LIKE ? AND city = ?});
$sth->execute( $name.'%',$city);

在调用execute之后,我无法看到sql查询的外观,因为execute是将参数绑定到查询的最新步骤.

我想有一些像$sth-> getLastExecutedQuery()之类的东西来查看查询的样子.

在这种情况下,函数getLastExecutedQuery()将返回:

SELECT * FROM company WHERE companyname LIKE 'Company Name%' AND city = 'City name';

有没有办法得到这个?它仅用于调试目的.

解决方法

DBI支持以下内容:
有DBI->跟踪($tracefile_handle)方法(跟踪所有DBI交互)或$dbh->跟踪($tracefile_handle),它只跟踪特定句柄上的交互.输出默认为STDERR,但是通过提供$tracefile_handle,您可以显式地将输出发送到不同的文件(或者只使用shell重定向).

DBD :: pg还支持$h-> trace(‘SQL’);您的DBD驱动程序必须支持此功能,但幸运的是DBD :: Pg支持该功能.

DBI的文档,在CPAN – DBI,
对于DBD :: Pg,CPAN – DBD::Pg确实为您提供了跟踪时需要了解的所有信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读