Bex*_*Bex 2 sql-server perl dbi
我是perl的新手(但是来自ac #background),我正在尝试将一些脚本移动到Windows框中.由于某些模块无法轻松使用Windows,因此我改变了连接数据库的方式.我有一个sqlserver数据库,我有一个循环读取表中的每一行,然后在这个循环内发送另一个查询来选择不同的信息.我是错误,在同一连接中无法一次执行两个语句.由于我的连接对象是全局的,我无法看到一个简单的方法,因此决定使用以下方法将第一组数据存储在数组中:
my $query = shift;
my $aryref = $dbh->selectall_arrayref($query) || die "Could not select to array\n";
return($aryref);
Run Code Online (Sandbox Code Playgroud)
(这是在一个被调用的模块文件中)
然后我做一个foreach循环(其中@ $ s_study是上面返回的$ aryref)
foreach my $r_study ( @$s_study ) {
~~~
my $surveyId=$r_study->{surveyid}; <-------error this line
~~~~
};
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到一个错误"不是哈希引用".我不明白?!谁能帮忙!
贝克斯
如果要将每一行存储为哈希{ Slice => {} },selectall_arrayref则需要提供参数:
my $aryref = $dbh->selectall_arrayref($query, { Slice => {} });
Run Code Online (Sandbox Code Playgroud)
默认情况下,它返回对数组的引用,该数组包含对每个获取数据行的数组的引用.
| 归档时间: |
|
| 查看次数: |
8199 次 |
| 最近记录: |