# dump_members.dump Historical League's membership list
从‘#’字符到行尾部的文本为注释。有必要做一些练习,就是在整个脚本中编写一些注释来解释它们如何工作。
接下来是两个use 行:
use DBI;
use strict;
use DBI 告知Perl 解释程序它需要引入DBI 模块。如果没有这一行,试图在脚本中做与DBI 相关的任何事,都将出现错误。不需要指出想要哪个DBD 级别的模块。在连接数据库时,DBI 会激活相应的模块。
use strict 告知Perl,在使用它们之前需要声明变量。如果没有use strict 行,也可以编写脚本,但是,它有助于发现错误,所以建议始终要包括这行。例如,置为严格模式时,如果声明变量$ my _ v a r,但是之后错误地用$mv_var 来访问,则在运行这个脚本时,将获得下面的消息:
Global symbol "$mv_var" requires explicit package name at line n
这个消息会使您想,“怎么了?$ m v _ v a r?我从未使用过这种名称的变量!”,然后,找到脚本中的第n行,看是什么问题,并改正它。如果不用严格模式, Perl 不会给出$ m v _ v a r;将只是简单地按具有un d e f(未定义的)值的该名称创建一个新的变量,并毫无动静地使用它,然后,您会莫名其妙脚本为什么不工作。
因为我们在严格模式下操作,所以我们将定义脚本使用的变量:
现在我们准备连接数据库:
connect( ) 调用作为DBI->connect( ) 来调用,因为它是DBI 类的方法。不必真正知道它是什么意思;它只是一个使人头痛的面向对象的行话(如果的确想知道,那么它意味着connect( ) 是“属于”DBI 的一个函数)。connect( ) 有若干参数:
数据源。(经常调用的数据源名称,或D S N。)数据源格式由要使用的特定DBD 模块需求来确定。对于MySQL驱动程序,允许的格式如下:
"DBI:mysql:db_name"
"DBI:mysql:db_name:host_name"
对于第一种格式,主机名缺省为localhost(实际上有其他允许的数据源格式,我们将在后面7 . 2 . 8节“指定连接参数”中讨论)。“DBI”大写没关系,但是“ mysql”必须小写。
用户名和口令。
表示额外连接属性的可选参数。这个参数控制DBI 的错误处理行为,我们指定的看起来有点奇怪的构造启用了RaiseError 属性。这导致DBI 检查与数据库相关的错误,并显示消息,而且只要它检测到错误就退出(这就是为什么在dump_members 脚本中的任何地方都没有看到错误检查代码的原因; DBI 将它全部处理了)。7 . 2 . 3节“处理错误”包括了对错误响应的可选方法。
如果connect( ) 调用成功,则它返回数据库句柄,我们分配给$dbh(如果connect( ) 失败,通常返回un d e f。然而,因为我们在脚本中启用了R a i s e E r r o r,所以connect( )不返回;但是,DBI 将显示一条错误消息,并且在出现错误时退出)。
连接到数据库后, dump_members 发布一条SELECT 语句查询来检索全体成员列表,然后,执行一个循环来处理返回的每一行。这些行构成了结果集。
为了完成S E L E C T语句,首先需要准备,然后再运行它:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页
Tag:数据库教程,sql数据库教程,access数据库教程,电脑教学 - 数据库教程