Pular para o conteúdo

Problema com Insert [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Problema com Insert [RESOLVIDO]

Enviado em 24/09/2015 - 21:29h

Olá, estou criando uma página de cadastro de produto em php a classe DaoProduto está da seguinte forma:

<?php

require './conexao.php';
require './class-produto.php';

class DaoProduto {

public static $instance;

private function __construct() {
//
}

public static function getInstance() {
if (!isset(self::$instance))
self::$instance = new DaoProduto();

return self::$instance;
}

public function getNextID() {
try {
$sql = "SELECT Auto_increment FROM information_schema.tables WHERE table_name='produto'";
$result = Conexao::getInstance()->query($sql);
$final_result = $result->fetch(PDO::FETCH_ASSOC);
return $final_result['Auto_increment'];
} catch (Exception $e) {
print "Ocorreu um erro ao tentar executar esta ação, foi gerado um LOG do mesmo, tente novamente mais tarde.";
}
}

public function Inserir(Produto $produto) {
try {
$sqlP = "INSERT INTO produto (
nome,
fabricante,
codigo,
detalhes,
descricao,
veiculos_compativel,
garantia,
loja_id
)
VALUES (
:nome,
:fabricante,
:codigo,
:detalhes,
:descricao,
:veiculos_compativel,
:garantia,
:loja_id
)";

$p_sql = Conexao::getInstance()->prepare($sqlP);

$p_sql->bindValue(":nome", $produto->getNome());
$p_sql->bindValue(":fabricante", $produto->getFabricante());
$p_sql->bindValue(":codigo", $produto->getCodigo());
$p_sql->bindValue(":detalhes", $produto->getDetalhes());
$p_sql->bindValue(":descricao", $produto->getDescricao());
$p_sql->bindValue(":vaiculos_compativel", $produto->getVeiculos_compativel());
$p_sql->bindValue(":garantia", $produto->getGarantia());
$p_sql->bindValue(":loja_id", $produto->getLoja_id());
return $p_sql->execute();
} catch (Exception $e) {
die($e);
//print "!Ocorreu um erro ao tentar executar esta ação, foi gerado um LOG do mesmo, tente novamente mais tarde.";
}
}
}

?>

Quando tento cadastrar algum novo produto o navegador me retorna o seguinte erro:

exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in localhost/home/DAOproduto.php:65 Stack trace: #0 localhost/home/DAOproduto.php(65): PDOStatement->execute() #1 localhost/home/DAOproduto.php/validaCadastroProduto.php(44): DaoProduto->Inserir(Object(Produto)) #2 {main}

Será que alguém poderia me ajudar?



Responder tópico

2. Re: Problema com Insert [RESOLVIDO]

Melhor resposta

Enviado em 25/09/2015 - 03:57h


Só de bater o olho:
$p_sql->bindValue(":vAiculos_compativel", $produto->getVeiculos_compativel());
não seria
$p_sql->bindValue(":vEiculos_compativel", $produto->getVeiculos_compativel());
?
(Pus em maiúscula para facilitar)

3. Re: Problema com Insert [RESOLVIDO]

Enviado em 25/09/2015 - 15:09h

cassio88 escreveu:


Só de bater o olho:
$p_sql->bindValue(":vAiculos_compativel", $produto->getVeiculos_compativel());
não seria
$p_sql->bindValue(":vEiculos_compativel", $produto->getVeiculos_compativel());
?
(Pus em maiúscula para facilitar)




Era isso mesmo, muito obrigado! Não sei como não percebi algo tão simples.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder