当前位置: 首页 > 面试题库 >

在Perl的DBI填写占位符之后,如何打印执行的SQL查询?

卢英叡
2023-03-14
问题内容

我正在使用Perl的DBI模块。我准备使用占位符的语句,然后执行查询。

是否可以打印出执行的最终查询而无需手动转义参数并将其放入占位符?

谢谢


问题答案:

请参阅DBI中的跟踪。以下使用可以工作,DBD::SQLite但是会产生很多输出:

$dbh->trace($dbh->parse_trace_flags('SQL|1|test'));

输出:

<- prepare('SELECT ... FROM ... WHERE ... = ?')= DBI::st=HASH(0x21ee924) at booklet-excel.pl line 213

<- execute('Inhaler')= '0E0' at booklet-excel.pl line 215

等等等

您可以将自己的过滤器插入跟踪流中,仅保留prepares。



 类似资料:
  • 问题内容: 我知道这将在实际执行之前执行脚本打印每一行。如何使Perl和Python解释器执行相同的操作? 问题答案: Devel :: Trace是Perl的类似物,trace模块是Python的。

  • Perl DBI是Perl数据库接口(Perl Database Interface,简称DBI)。通过提供一系列在内部上能够转化成原始调用函数的功能,DBI模块为很多不同的数据库提供了一个统一的接口。由此,使用Perl就可以很容易地利用数据库和建立动态Web网页。 下载:Perl-DBI 1.4 RPM

  • 问题内容: 在将输入数据放入MySQL数据库之前,我可以在Perl中使用该功能来清理输入吗?我不太了解正则表达式,所以在我做自己的功能之前,我想知道是否已经有一个正则表达式。 问题答案: 清理要插入数据库的数据的正确方法是对所有要插入SQL字符串的变量使用占位符。换句话说,永远不要这样做: 而是使用占位符: 然后在执行查询时传递要替换的变量: 您可以将这些操作与某些DBI便捷方法结合使用。上面也可

  • 问题内容: 我有一个争论,我这样说道: 但它似乎不起作用。 我是sqlite的新手,请告诉我如何解决它。谢谢 ! 问题答案: 将通配符应用于参数,而不是SQL: 在SQL参数插值增加了报价给你,所以你的查询结束的,这不是有效的SQL。

  • 问题内容: 我有以下代码是我从模型中获取的, 当我在zend中使用更新查询时, 在这里我想知道确切的mysql查询。有什么办法可以在zend中打印mysql查询吗?好心劝告 问题答案: 选择对象在Zend Framework中具有__toString()方法。 从Zend Framework手册中: 另一种解决方案是使用Zend_Db_Profiler。即 http://framework.zen

  • 问题内容: 我正在尝试实现一个简单的前馈网络。但是,我不知道如何输入。这个例子: 给我以下错误: 我试过了 但这显然不起作用。 问题答案: 要填充占位符,请使用(或)参数。假设您有一个带占位符的下图: 如果要评估,则必须输入的值。您可以按照以下步骤进行操作: 有关更多信息,请参见有关送纸的文档。