LucianoAlexandre
(usa Ubuntu)
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?