在Perl SQLite的连接字符串

问题描述 投票:0回答:1

我使用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;
perl sqlite
1个回答
0
投票

阅读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设置是持久的。所以,你只需要设置一次,然后你可以从你的连接代码完全放弃它。

© www.soinside.com 2019 - 2024. All rights reserved.