Inserir valor null em campo date (postgreSQL)
Olá.
Tenho um formulário com um campo do tipo data que não é obrigatório.
Eu utilizo o seguinte código para o insert:
$sql = "INSERT INTO tabela (data) VALUES ('".$this->getData()."')";
Quando o campo do formulário é preenchido, o INSERT funciona corretamente, mas quando não é preenchido ocorre o erro abaixo:
ERROR: invalid input syntax for type date: ""
Quando eu insiro o campo nulo diretamente no banco, também funciona:
INSERT INTO tabela (data) VALUES (null);
Então, tentei colocar desta forma:
public function getData(){
if ($this->data == ''){
return null;
} else {
return $this->data;
}
}
Mas o erro persiste (se retornar null como string "null" também).
A forma que encontrei para solucionar meu problema foi este:
$sql = "INSERT INTO tabela (data) VALUES ";
if ($this->getData() == ''){
$sql .= "(null)";
} else {
$sql .= "('".$this->getData()."')";
}
Esta funcionando, mas acredito que não seja a melhor maneira de se resolver.
Alguém saberia uma forma menos gambiarristica de inserir o valor nulo no campo tipo date?
Obrigado.
Discussão (7)
Carregando comentários...