이 코드가 있습니다perl DBI execute가 '?'을 인식하지 못합니다.
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
은 공백을 포함 할 수있는 텍스트이며, 날짜에도 공백이 필요하므로 필요합니다. –
아니요, 필요하지 않습니다. 그것은 자리 표시 자입니다. –