如何使用 Perl 在 Sqlite 中准备 pragma 语句?

cev*_*ing 0 sqlite perl prepared-statement dbi

我试图准备一个 pragma 语句:

$sth = $dbh->prepare (q{pragma table_info(?)})
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

DBD::SQLite::db prepare failed: near "?"
Run Code Online (Sandbox Code Playgroud)

准备字符串有什么问题?

Mat*_*cob 5

来自DBI 文档

对于大多数驱动程序,占位符不能用于语句的任何元素,否则会阻止数据库服务器验证语句并为其创建查询执行计划。

所以,我只能假设这种情况下的占位符阻止了数据库服务器(或在这种情况下自包含的数据库引擎)验证语句。

即使语句可以准备,根据SQLite的PRAGMA文档,它看起来像table_info期待一个不带引号的表名参数。DBD::SQLite 希望默认引用所有绑定值,因此无论如何都会导致单独的问题。