我使用Perl中sqlite的连接字符串下面连接SQLite数据库及以下的错误得到以下
不能设置DBI ::分贝= HASH(0x2c34194) - > {PRAGMA journal_mode}:无法识别的属性名称或无效值
my $driver = "SQLite";
my $database = "C:\\Sample\\Sample_Sqlite\\Activities.db3;PRAGMA journal_mode=WAL;";
my $dsn = "DBI:$driver:dbname=$database";
print $dsn;
my $dbh = DBI->connect(
$dsn,
{ RaiseError => 1 },
) or die $DBI::errstr;
阅读the section on PRAGMA in the DBD::SQLite documentation,它看起来像你在错误的时间设置PRAGMA。它不应该是连接字符串的一部分,但一旦你连接时运行的SQL命令。
my $driver = "SQLite";
my $database = "C:\\Sample\\Sample_Sqlite\\Activities.db3";
my $dsn = "DBI:$driver:dbname=$database";
print $dsn;
my $dbh = DBI->connect(
$dsn,
{ RaiseError => 1 },
) or die $DBI::errstr;
$dbh->do('PRAGMA journal_mode=WAL');
更新:它可能还值得一提的是,journal_mode
设置是持久的。所以,你只需要设置一次,然后你可以从你的连接代码完全放弃它。