我正在为一个尚不存在的数据库创建一组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连接,只是为了让你得到正确的引用格式.您不需要实际发送任何语句,但是您确实知道引用格式对于您将使用的数据库是正确的.