当前位置:学学看123知识中心电脑教学数据库教程Perl DBI 基础» 正文

Perl DBI 基础

[06-11 18:16:12]   来源:http://www.xxk123.com  数据库教程   阅读:8749

导读: # issue query $sth=$dbh->prepare("SELECT last_name,first_name,suffix,email," "street,city,state,zip,phone FROM member ORDER BY last_name"); $sth->execute(); 利用数据库句柄调用prepare( );在执行前,它将SQL 语句传递给预处理的驱动程序。实际上,在这里某些驱动程序做了一些有关这条语句的事情。其他驱动程序只是记住它,直到调用execute( ) 使这条语句被执行为止。从prepare( ) 返回的值是一个语句句柄$ s t h,如果出现错误,则为un d e f。在进一步处理与这条语句相关的所有内容时,都使用这个语句句柄。 请注意,指定的这个查询没有分号结束符。您无疑有这样的(经过长时间使用mysql程序养成的)习惯,用‘ ;’字符终止SQL 语句。然而,在使用DBI时,最好打破这个习惯,因为分号经常导致查

Perl DBI 基础,标签:sql数据库教程,access数据库教程,http://www.xxk123.com
    # issue query
    $sth=$dbh->prepare("SELECT last_name,first_name,suffix,email,"
         "street,city,state,zip,phone FROM member ORDER BY last_name");
    $sth->execute();
    利用数据库句柄调用prepare( );在执行前,它将SQL 语句传递给预处理的驱动程序。实际上,在这里某些驱动程序做了一些有关这条语句的事情。其他驱动程序只是记住它,直到调用execute( ) 使这条语句被执行为止。从prepare( ) 返回的值是一个语句句柄$ s t h,如果出现错误,则为un d e f。在进一步处理与这条语句相关的所有内容时,都使用这个语句句柄。
    请注意,指定的这个查询没有分号结束符。您无疑有这样的(经过长时间使用mysql程序养成的)习惯,用‘ ;’字符终止SQL 语句。然而,在使用DBI时,最好打破这个习惯,因为分号经常导致查询出现语法错误而失败。向查询增加‘ \ g’也类似,使用DBI 时不要这样。
    在调用一个方法而不用向它传递任何参数时,可以没有这个圆括号。下列两个调用是等价的:
    $sth->execute();
    $sth->execute;
    我宁愿有圆括号,因为它使人感到这个调用看上去不像变量。您的选择就可能不同了。
    调用execute( ) 后,可以处理成员列表的行。在dump_members 脚本中,提取行的循环简单地显示了每行的内容:

    fetchrow_array( ) 返回含有当前行的列值的数组,在没有剩余的行时,返回一个空数组。这样,此循环提取了由SELECT 语句返回的连续行,并显示列值之间用制表符分隔的每一行。在数据库中NULL 作为undef 值返回到Perl 脚本,但是将它们显示为空字符串,而不是单词“NULL”。
    请注意,制表符和换行符(表示为‘ \ t’和‘\ n’)括在双引号中。在Perl 中,只解释出现在双引号内的转义符序列,不解释出现在单引号内的转义符序列。如果使用单引号,则输出将为字符串“\ t”和“\ n”。
    提取行的循环终止以后,调用finish( ) 告知DBI 不再需要语句句柄,并且释放分配给它的所有临时资源。实际上,除非只提取结果集的一部分(无论是设计的原因,还是因为出现一些问题),否则不需要调用finish( )。然而,在提取循环之后, finish( ) 始终是很保险的,我认为调用并执行finish( ),比区分何时需要,何时不需要更容易一些。
    我们已经显示完了全部成员列表,所以我们可以从服务器上断开连接,并且退出:
    $dbh->disconnect();
    exit(0);
    dump_members 示出了许多DBI 程序的大多数通用概念,而且不必了解更多的知识,就可以着手编写自己的DBI 程序。例如,要想写出一些其他表的内容,所需要做的只是更改传递给prepare( ) 方法的SELECT 语句的文本。而且实际上,如果想了解这种技术的某些应用,可略过这部分,直接跳到7 . 3节“运行DBI”中讨论如何生成历史同盟一年一度的宴会成员列表程序和League 打印目录的部分。然而,DBI 提供许多其他有用的功能。下一节介绍了一些,以便能够在Perl 脚本中看看如何完成比运行一条简单的SELECT 语句更多的事情。

处理错误

    在dump_members 调用connect( )方法时,应该启用RaiseError 错误处理属性,以便这些错误用一条错误消息就能自动地终止相应的脚本。也可以用其他方式处理这些错误。例如,可以自己检查错误而不必使用DBI。
    为了查看如何控制DBI 的错误处理行为,我们来仔细查看一下connect( ) 调用的最终参数。下面两个相关的属性是RaiseError 和P r i n t E r r o r:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
前一篇:ORACLE函数大全
《Perl DBI 基础》相关文章

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10