gpt4 book ai didi

perl - 如何使用 Perl、DBI 和占位符插入到 PostgreSQL 中?

转载 作者:行者123 更新时间:2023-11-29 11:53:00 25 4
gpt4 key购买 nike

我正在尝试向 pSQL 表中插入一行,同时指定键和值作为占位符:

my @keys = keys %db_entr;                                                            
my @vals = values %db_entr;

my @items = (@keys, @values);

my $dbh = DBI->connect("DBI:Pg:dbname=testdb;host=localhost", "username", 'password', {'RaiseError' => 1});
my $sth = $dbh->prepare("INSERT INTO grid ( ?, ?, ? ) values ( ?, ?, ? )");
my $rows = $sth->execute(@items);
print "$rows effected\n";

但是,无论我做什么,这都会给我一个错误:

DBD::Pg::st execute failed: ERROR:  syntax error at or near "$1"
LINE 1: INSERT INTO grid ( $1, $2, ...
^ at ./file.pl line 262, <STDIN> line 11.

有没有人知道我可能做错了什么?

最佳答案

您不能像这样对列名使用占位符:

INSERT INTO grid (?, ?, ?) VALUES (?, ?, ?)

您必须明确指定列名,并且只能对值使用占位符:

INSERT INTO grid (x, y, z) VALUES (?, ?, ?)

关于perl - 如何使用 Perl、DBI 和占位符插入到 PostgreSQL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212567/

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