Database 在perl中选择而不使用准备好的语句
我的数据库不支持prepare语句,有没有办法在这个数据库上运行selectquery而不用perl中的prepare语句 代码段:Database 在perl中选择而不使用准备好的语句,database,perl,prepared-statement,dbi,Database,Perl,Prepared Statement,Dbi,我的数据库不支持prepare语句,有没有办法在这个数据库上运行selectquery而不用perl中的prepare语句 代码段: my $query = $conn->prepare("select a, b from my_table"); $query->execute(); 错误: DBD::Pg::st execute failed: ERROR: cannot execute PREPARE 尝试$conn->{'pg_server_prepare'}=0禁用服务
my $query = $conn->prepare("select a, b from my_table");
$query->execute();
错误:
DBD::Pg::st execute failed: ERROR: cannot execute PREPARE
尝试
$conn->{'pg_server_prepare'}=0
禁用服务器端准备语句。只需使用prepare
,db驱动程序就会处理REST,这代码有什么用?我们已经知道你在某处使用了一种prepare方法。显示您正在使用的模块,以及如何创建数据库对象。您可能应该使用errstr函数来获取错误。并且可能报告模块和Perl的版本。如果它是postgresql
的修改版本,可能它需要自己的驱动程序。顺便说一句,enterprisedb?@metdos嗯,已经两个小时了,你还没有答案。这应该告诉你,你的问题无法以目前的形式得到回答。根据我的经验,这更可能是一个用户错误而不是软件错误。您能确定您使用的是哪个版本的Perl、DBI、DBD::Pg和PostgreSQL吗。DBI规范要求$sth=$dbh->prepare(…)
后跟$sth->execute()
才能工作,因此如果驱动程序不工作,它将(是?)不可用。我能看到的唯一一件可能出错的事情是,如果prepare
失败,您(应该)会得到一个无效的语句句柄,但这显然不是问题所在。您是否在连接属性中连接了{RaiseError=>1}
和/或{PrintError=>1}
。谢谢