Estou tentando inserir um cadastro no banco de dados da seguinte forma (PHP)
$ sql = "INSERT INTO `tb_teste` (`estrutura`, `foto`, `data_cadastro`) VALUES (':estrutura', ':foto', ':data_cadastro')"; $ sql = $ this->db->prepare($ sql); $ sql->bindParam(":estrutura", $ estrutura, PDO::PARAM_STR); $ sql->bindParam(":foto", $ foto, PDO::PARAM_STR); $ sql->bindParam(":data_cadastro", $ data_cadastro, PDO::PARAM_STR); $ retorno = $ sql->execute();
Já tentei com bindValue
, já tentei sem utilizar o último parametro PDO::PARAM_STR
, já tentei converter para Timestamp, converti antes de mandar para o PHP (no jQuery), converti de várias formas diferentes no PHP e nada funcionou, continuo recebendo o erro:
Incorrect datetime value: ‘:data_cadastro’ for column ‘data_cadastro’ at row 1
A única coisa que eu fiz e inseriu no banco, foi isso:
$ sql = "INSERT INTO `tb_teste` (`estrutura`, `foto`, `data_cadastro`) VALUES (':estrutura', ':foto', '$ data_cadastro')"; $ sql = $ this->db->prepare($ sql); $ sql->bindParam(":estrutura", $ estrutura, PDO::PARAM_STR); $ sql->bindParam(":foto", $ foto, PDO::PARAM_STR);
colocando a variável da data direto na query não deu erro e inseriu a data no campo corretamente, porém os outros campos ficaram com o valor :estutura
,:foto
OBS: valor exibido no var_dump($ data_cadastro):
C:\wamp64\www\TESTE\controllers\painel\testeController.php:57:string ‘1995-11-14 00:00:00’
Ou seja, quando tento utilizar o bindParam ou bindValue a inserção não funciona, mas se o valor é inserido na query, funciona corretamente.
Obrigado!