我在我的sqlite数据库中插入来自perl的数据.
这是我的编码:
如果我的值具有引号等特殊字符,我该如何使这个案例工作?
sub ADDROWDATATODATABASE
{
my $dbh1 = $_[0];
my $table = $_[1];
my @DATA = @{$_[2]};
my $string = ();
foreach (@DATA) { $string .= "'$_',"; } $string =~ s/,$//;
$dbh1->do(qq|insert into $table values(NULL,$string);|);
my $date = `date`;
print "[MYSQLITE_ADDROW.pl] $date : ADDING DATA INTO DATABASE <p>";
}
Run Code Online (Sandbox Code Playgroud)
使用占位符和绑定值.这样也可以使您的程序更安全.
my $statement = $dbh->prepare("insert into $table VALUES(NULL, ?,?,?,?)");
$statement->execute(@DATA);
Run Code Online (Sandbox Code Playgroud)
假设元素的数量@DATA仅在运行时已知(并且它是正确的元素数$table),您可以使用
my $statement = $dbh->prepare("insert into $table VALUES(NULL" . ",?"x@DATA . ")";
$statement->execute(@DATA);
Run Code Online (Sandbox Code Playgroud)
确保该声明具有正确数量的占位符.
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |