从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, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |