connect( "dbi:Pg:dbname=$dbname;host=$host-6ren">
gpt4 book ai didi

postgresql - 当我尝试使用 DBI 执行查询时,为什么会出现错误 "called with 1 bind variables when 0 are needed"?

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

我正在尝试使用以下代码从表 (PostgreSQL) 中选择一些行:

my $kadadbh = DBI->connect(
"dbi:Pg:dbname=$dbname;host=$host",
$dbuser,
$dbpasswd
);

my $subject_nar_sel= $kadadbh->prepare(
'SELECT * FROM subject WHERE SUBSTRING(CAST(id AS text),1,6) = "?";'
);

$nar=605812;
$subject_nar_sel->execute($nar);

但是我得到一个错误:

called with 1 bind variables when 0 are needed at ...

交换单引号和双引号时出现同样的错误:

"SELECT * FROM subject WHERE SUBSTRING(CAST(id AS text),1,6) = '?';"

我该如何解决这个问题?

最佳答案

您当前的查询正在测试 SUBSTRING(CAST(id AS text),1,6) 是否匹配 literal string 可疑命名的引用标识符 ”? “。所以不要引用 ?,即使绑定(bind)参数是字符串类型也是如此:

SELECT * FROM subject WHERE SUBSTRING(CAST(id AS text),1,6) = ?

关于postgresql - 当我尝试使用 DBI 执行查询时,为什么会出现错误 "called with 1 bind variables when 0 are needed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109308/

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