我想让我的第一个选择使用来自Perl DBI模块的selectall_hashref
。我已经成功打开了与数据库(MySQL)的连接。我发现了一个错误,当我执行以下命令:当使用Perl DBI时,“属性参数不在哈希引用中”错误selectall_hashref
$dbh->selectall_hashref('SELECT id FROM users WHERE login=?',undef,"myusername");
DBI :: ST = HASH(0x1505a60) - > _准备(...):属性参数 '名为myUsername' 不是一个哈希裁判在/usr/lib/x86_64-linux-gnu/perl5/5.20/DBD/mysql.pm线238
我的表应该是能够支持这个查询,它为每个用户id
柱和login
列。
我发现的selectall_hashref
的示例显示?
替代参数作为第三个参数传递。 DBI documentation表示第二个和第三个参数应该是%attr
和@bind_values
,但没有提供关于它们的很多文档或显示工作示例。
是什么导致了错误,更重要的是你如何正确使用%attr
和@bind_values
?
我希望能找回像{{“id” - > 1}'这样的hashref,这就是我选择hashref版本的原因。 hashref是否引用它所需的参数而不是返回的参数? –
我明白了。恐怕你需要一排一排地使用fetchrow_hashref。 DBI在命名方面略有不一致...... –
就是这样。我想'selectrow_hashref'而不是'selectall_hashref'。我看过两个例子,并复制了错误的代码。 –