我正在为一个尚不存在的数据库创建一组 SQL INSERT
语句,并将它们保存到文件中。
如何在不访问特定数据库的情况下使用 Perl 强大的 DBI 模块来创建这些 INSERT 语句。特别是,使用 $dbh->quote()
函数似乎需要我实例化 $dbh
并连接到数据库。
最佳答案
不幸的是,实际的 quote()
行为并不总是可移植的特性,因此每个驱动程序都会以不同的方式执行它们。除非连接到驱动程序,否则您不知道在实践中使用哪种引用格式。 (有一个模块可以在没有连接的情况下执行此操作,DBIx::Abstract
,但它不是特别最新。)。
quote()
方法实际上是由相应的驱动类实现的,在DBD::*
命名空间中。您可能尝试加载您需要的驱动程序并直接调用该函数(请参阅 http://search.cpan.org/~timb/DBI-1.616/lib/DBI/DBD.pm#Writing_DBD::Driver::db::quote ),但这感觉很糟糕。
我仍然会建立一个 DBI
连接,如果只是为了让您获得正确的引用格式。您实际上不需要向它发送任何语句,但您确实知道引用格式对于您将使用的数据库是正确的。
关于mysql - 不访问数据库的 Perl DBI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670102/