我有一个表,我正在使用prepare
和execute
语句插入值。
$sql = <<"END_SQL";
BEGIN
INSERT INTO my_table (name, id, date, region) VALUES (?,?,trunc(SYSDATE),?);
EXCEPTION WHEN dup_val_on_index THEN null;
END;
END_SQL
if (!($sth = $dbh->prepare ($sql))) {
die("Failed to prepare: " . DBI->errstr);
}
如上所述,我对date
列使用默认的trunc(SYSDATE)
。我需要通过execute
语句传递其他3列的值。
我不确定如何使用execute
将值传递给默认date
列之后的region
。
$sth->execute($PNAME,$ID,$REGION);
上面的语句可以工作吗?或者有没有任何一种占位符可以在execute
中用于date
(类似于下面的内容)?
$sth->execute($PNAME,$ID,,$REGION);
1条答案
按热度按时间kq0g1dla1#
绑定变量被绑定到
?
占位符。它们在语句中的位置或语句中绑定变量之间的位置无关紧要。?
。?
。?
。Perl代码不需要知道
INSERT
语句,它只需要知道语句中有多少个?
(匿名绑定变量),并为每个变量提供一个值。