在 Perl 数据库操作中使用 NULL 值
未定义值或 undef 用于指示 Perl 数据库操作中的 NULL 值。你可以使用 NULL 值插入和更新列,就像使用非 NULL 值一样。以下示例使用 NULL 值插入和更新 age 列 −
$sth = $dbh->prepare(qq {
INSERT INTO TEST_TABLE (FIRST_NAME, AGE) VALUES (?, ?)
});
$sth->execute("Joe", undef);在该示例中,qq{} 用于向 prepare API 返回一个带引号的字符串。但是,当尝试在 WHERE 子句中使用 NULL 值时务必小心。请注意 −
SELECT FIRST_NAME FROM TEST_TABLE WHERE age = ?
将 undef (NULL) 绑定到占位符不会选择具有 NULL age 的行!至少对于符合 SQL 标准的数据库引擎是这样。有关原因,请参阅你所用数据库引擎的 SQL 手册或任何 SQL 书籍。要显式选择 NULL 值,你必须说 "WHERE age IS NULL"。
一个常见问题是代码片段处理的值在运行时可能是定义的或未定义的(非 NULL 或 NULL)。一种简单技术是根据需要准备适当的语句,并在非 NULL 情况下替换占位符 −
$sql_clause = defined $age? "age = ?" : "age IS NULL";
$sth = $dbh->prepare(qq {
SELECT FIRST_NAME FROM TEST_TABLE WHERE $sql_clause
});
$sth->execute(defined $age ? $age : ());
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP