我有這樣的代碼:perl DBI執行不識別'?'
if($update[$entity_id])
{
my $sql = "UPDATE cache SET date = '?', value = '?' WHERE item_id = ? AND level = ? AND type = ?;";
}
else
{
my $sql = "INSERT INTO cache (date, value, item_id, level, type) VALUES ('?','?',?,?,?);";
}
my $db = $self->{dbh}->prepare(q{$sql}) or die ("unable to prepare");
$db->execute(time2str("%Y-%m-%d %X", time), $stored, $entity_id, 'entity', 'variance');
但是,當它要運行的更新我得到這個錯誤:
DBD::Pg::st execute failed : called with 5 bind variables when 0 are needed.
爲什麼?
你真的想在每個'?'附近單引號嗎? $ stored變量中的 – toolic
是文本,它可以包含空格,在日期中也有一個是需要的。 –
不,你不需要它。這是佔位符的要點。 –