免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1821 | 回复: 2
打印 上一主题 下一主题

cgi使用数据库时对字段的读取方式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-26 10:39 |只看该作者 |倒序浏览
我用以下的程序读取数据库,这个程序是网上搞来的,所以虽然成功读取了数据库,我却也是不明所以。

这个程序将一条记录保存在一个数组里,然后根据数组下标读取记录的各个字段。

用数字下标读取记录的做法不形象也就罢了,但是如果我数据库里添加和删除字段后,这个下标所指的字段岂不都乱了?能不能像哈稀一样用一个形象的名字读取记录呢?如何改写以下程序的$FieldNames?


####################程序开始################

#!/usr/bin/perl
print "Content-type: text/html\n\n";

use Win32::ODBC;  

$DSN = "perldb";  

#连接数据库  

if (!($db = new Win32::ODBC($DSN))){  
print "连接数据库失败\#哈哈";  
exit();  
}  
else{  
print "连接数据库成功 (连接号:",$db->;Connection(),"\n";  
}  

#数据库中的表  
print "数据库中的表:";  
@tables = $db->;TableList;  
print "@tables \n";  


#选择数据表  
if (!$db->;Sql("SELECT * FROM [address]"){  

@FieldNames = $db->;FieldNames();  

$Cols = $#FieldNames + 1;  

#表中字段数  
print "表address字段数Cols \n";  

#字段列表
print "字段名: ";  
for ($i = 0; $i < $Cols; $i++){  
print " $FieldNames[$i] ";  
}  

print "\n所有记录:\n";

#列出年龄大于20的记录  
while($db->;FetchRow()){  
@values = $db->;Data();  
print @values;  
print "\n";  
}  

}  



#关闭链接  
$db->;Close();  
####################程序结束################

论坛徽章:
0
2 [报告]
发表于 2003-09-26 15:08 |只看该作者

cgi使用数据库时对字段的读取方式


  1. ......
  2. while(@rows = $sth->;fetchrow_array)
  3. {
  4.         #foreach(@rows)
  5.         #{
  6.         #        print "$_\t";
  7.         #}
  8.            print $rows["host"];
  9.         print $rows["user"];
  10.         print "\n";
  11. }
  12. ......
复制代码

论坛徽章:
0
3 [报告]
发表于 2004-01-05 11:31 |只看该作者

cgi使用数据库时对字段的读取方式

为什么是 @rows 而不是 %rows   ?

fetchrow_array 和 FetchRow() 都是模块里定义的方法?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP