下面这段代码效果相同:
要想区分NULL 列值和非NULL 列值,则使用defined( )。知道了没有出现NULL 值之后,使用适当的测试可以在其他类型值之间加以区分。例如:
以适当的次序完成这些测试是很重要的,因为如果$col_val 为空字符串,则第二个和第三个比较就都为真。如果颠倒比较的次序,则会错误地将空字符串标识为0。
引用问题
迄今为止,我们已经利用引用字符串以最基本的方式构造了查询。在引用的字符串含有引用值时,会在Perl 词汇一级产生问题。在插入或者选择含有引号、反斜杠或二进制数据的值时,在SQL 中也可能出问题。如果指定一个查询作为Perl 引用的字符串,则必须避免在查询字符串本身中出现引用字符:
Perl 和MySQL都允许用单引号或双引号引用字符串,所以混合使用引用字符有时可以避免这种无法引用引用字符自身的情况:
然而,在Perl 中,这两种类型的引号并不等价。只有在双引号内部才解释为变量引用。因此,当想通过在查询字符串中嵌入变量引用来构造查询时,单引号并不是非常有用的。例如,如果$var 的值为14,则下面的两个字符串并不等价:
两个字符串的解释如下所示;显然,第一个字符串与希望传递给MySQL服务器的内容更为相像:
用双引号来引用字符串的另一个选择是使用qq{} 结构,它告诉Perl 在‘q q {’和‘}’之间的每个字符都要看作为双引号括起的字符串(两个q 表示“双引号”)。例如,下列两行是等价的:
使用qq{} 时,构造查询不用过多考虑引号的问题,因为可以在这个查询字符串内自由地使用引号(单引号或双引号),而不用避开它们。此外,还解释了变量引用。qq{} 的这两种特性可用下面的INSERT 语句来说明:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页
Tag:数据库教程,sql数据库教程,access数据库教程,电脑教学 - 数据库教程