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

Perl DBI 基础

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

导读: 请注意,在查询字符串中引用$last 和$first 时,不要增加括起来的引号; quote( ) 方法支持它们。如果增加了引号,则查询将出现过多的引号,如下面的例子所示: 这些语句产生下面的输出:占位符和参数约束 在前面各节中,我们通过把要插入或选择的值作为选择标准,直接放在查询字符串中构造了查询。不一定非要这样做。DBI允许在查询字符串内部放置一些称为占位符的特殊标记符,然后,在执行该查询时,将这些值代替那些标识符来使用。这样做的主要原因是提高性能,特别是在循环中反复执行某个查询的时候。 为了说明占位符如何工作,举例说明。假设学校新学期刚开始,打算清理学分薄的student 表,然后利用包含在文件中的一列学生姓名将其初始化,使其包含新学生。不用占位符,可以如下这样删除现有表的内容,并装入新的姓名: 这样做效率很低,因为INSERT 查询的基本格式每次都是相同的,并且在整个循环中,do( ) 每次都调用prepare( ) 和execute( )。在进入这个循环以前,只调用一次prepare( ) 来设置INSERT 语句,并且在这

Perl DBI 基础,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

    请注意,在查询字符串中引用$last 和$first 时,不要增加括起来的引号; quote( ) 方法支持它们。如果增加了引号,则查询将出现过多的引号,如下面的例子所示:

    这些语句产生下面的输出:


占位符和参数约束

    在前面各节中,我们通过把要插入或选择的值作为选择标准,直接放在查询字符串中构造了查询。不一定非要这样做。DBI允许在查询字符串内部放置一些称为占位符的特殊标记符,然后,在执行该查询时,将这些值代替那些标识符来使用。这样做的主要原因是提高性能,特别是在循环中反复执行某个查询的时候。
    为了说明占位符如何工作,举例说明。假设学校新学期刚开始,打算清理学分薄的student 表,然后利用包含在文件中的一列学生姓名将其初始化,使其包含新学生。不用占位符,可以如下这样删除现有表的内容,并装入新的姓名:

    这样做效率很低,因为INSERT 查询的基本格式每次都是相同的,并且在整个循环中,do( ) 每次都调用prepare( ) 和execute( )。在进入这个循环以前,只调用一次prepare( ) 来设置INSERT 语句,并且在这个循环内部只调用execute( ),这样做效率更高一些。只调用一次prepare( ),可避免其他多次调用。DBI 允许我们这样做:

    请注意这个INSERT 查询中的‘ ?’就是一个占位符。调用execute( ) 时,将查询发送给服务器,传递这个值来代替占位符。一般来说,如果发现在循环内部调用了do( ),应该在循环前调用prepare( ),并在这个循环内部调用execute( ) 更好一些。
    有关占位符的一些注意事项:
    在查询字符串内,不要在引号中封装占位符字符。如果这样做,不能识别为占位符。
    不要使用quote( ) 方法来指定占位符的值,否则将在插入的值中得到额外的引号。
    在查询字符串中可以有一个以上的占位符,但是要确保占位符的标记符与传递给execute( ) 的值一样多。
    每个占位符都必须指定一个单独的值,而不是一列值。例如,不能运行这样的语句:

    为了将NULL 指定为占位符,应该使用un d e f。
    不要对关键字使用占位符。这样会出问题,因为占位符的值是由quote( ) 自动处理的。

上一页  [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