sub insert {
my ($self) = @_;
my $data = $self->{data};
my $keys = join( ', ', keys $data);
my $values = join( ', ', map qq('$_'), values $data);
my $sql = "INSERT INTO tbl ($keys) VALUES ($values);";
my $sth = $self->{dbh}->prepare($sql);
$sth->execute();
}
我有一个方法,它可以将哈希引用的内容插入到一个SQLite数据库的表中。我想知道是否有一种简单的方法,如果哈希键不是列名,则添加列到表中。显然,如果其中一个键不是列名,则插入将失败。我能否利用这个失败,添加缺失的列,并重新进行插入。还是每次想要插入数据库时,都必须检查所有列与所有键之间的关系?(所有键都具有TEXT值)
eval
或类似的Try::Tiny)并插入列也可以起作用。 - simbabque