Problema com Insert [RESOLVIDO]

1. Problema com Insert [RESOLVIDO]

Luciano Alexandre de Farias Silva
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?





  


2. MELHOR RESPOSTA

CASSIO FERRAZ
cassio88

(usa Ubuntu)

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]

Luciano Alexandre de Farias Silva
LucianoAlexandre

(usa Ubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts