您现在的位置:中国下载站学院中心数 据 库Mssql教程Mssql基础教程 → 文章列表

Mysql入门系列:Perl DBI基础(2)

作者:佚名  来源:不详  发布时间:2007-4-14 12:13:18   

减小字体 增大字体

 
 
  如果使用fetchrow_hashref( ),请记住下列警告:

  如果性能很重要,则fetchrow_hashref( ) 并不是最好的选择,因为它没有fetchrow_array( ) 或fetchrow_arrayref( ) 的效率高。

  作为散列键值使用的列名具有与SELECT 语句中写出时相同的字符。在MySQL中,列名不区分大小写,所以此查询也是这样,不管以大写字母还是小写字母给出列名,查询结果都是一样的。但是Perl 散列索引名是区分大小写的,这可能会带来一些问题。为了避免潜在的大小写不匹配问题,可通过传递NAME_lc 或NAME_uc 属性,告知fetchrow_hashref( ) 强迫列名为大写或小写:

  

  散列对每个唯一的列名含有一个元素。如果正在执行从多个具有重叠名称的表中返回列的连接,则不能访问所有的列值。例如,如果发布下面的查询, fetchrow_hashref( )将返回只有一个元素的散列:

  SELECT a.name FROM a,b WHERE a.name=b.name

  2. 确定查询返回的行数

  如何知道SELECT 或类似于SELECT 的查询返回的行数?一种方法是,当提取它们时,计算这些行的数量。实际上,这是知道SELECT 查询返回多少行的唯一方便的方法。使用MySQL驱动程序,可以在调用execute( ) 后利用语句句柄调用rows( ) 方法,但是这对其他数据库引擎并不方便。而且即使就MySQL来说,如果已经设置了mysql_use_result 属性,rows( ) 也不能返回正确的结果,直到提取了所有行(有关的详细信息,请参阅附录G)。所以只能如提取行一样对它们进行计数。

  3. 提取单行的结果

  如果结果集只含单个行,则不需要运行循环来获得结果。假设要编写得出历史同盟成员当前数量的脚本count _ member s。完成查询的代码如下所示:

  

转贴于:中国QQ站

  • 上一篇文章:Mysql入门系列:运行perl DBI
  • 下一篇文章:Mysql入门系列:Perl DBI基础(1)
  • 阅读统计:[]
  • 中国QQ站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接