gpt4 book ai didi

sqlite,在perl中插入数据和特殊字符大小写

转载 作者:行者123 更新时间:2023-12-01 00:15:35 24 4
gpt4 key购买 nike

我在我的 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>";
}

最佳答案

使用placeholders and bind values .这也将使您的程序更安全,免受 SQL 注入(inject)攻击。

my $statement = $dbh->prepare("insert into $table VALUES(NULL, ?,?,?,?)");
$statement->execute(@DATA);

假设 @DATA 中的元素数量仅在运行时已知(并且它是 $table 的正确元素数量),您可以使用

my $statement = $dbh->prepare("insert into $table VALUES(NULL" . ",?"x@DATA . ")";
$statement->execute(@DATA);

确保语句具有正确数量的占位符。

关于sqlite,在perl中插入数据和特殊字符大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com