Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junior almeida

[Resolvido] nao consigo inserir dados no banco de dados com pdo

Recommended Posts

<?php
require("config.php");

$idProd = $_POST['idUsuario'];

$id_usuario = 1;
$nome_usuario = "guilherme";
$end = "avenida nao sei";
$pagar = "dinheiro";
$obser = "nada";
$tel = "12165151";

$sql = $pdo->prepare("SELECT * FROM produtos WHERE id = '$idProd'");
$sql->execute();
$contar = $sql->rowCount();
while($ln = $sql->fetchObject()){
    $nomeProd = $ln->nome_prod;
    $descricao = $ln->descricao_prod;
    $preco = $ln->preco;
    $status = $ln->status;
    $img = $ln->img;
}

if($contar > 0){
    try{
        $insert = $pdo->prepare("INSERT INTO pedidos(id_usuario, id_produto, nome_produto, nome_usuario, img_produto, preco_pagar, endereco_entrega, status, forma_pagamento, observacao, telefone_usuario) 
                                VALUES 
                                (:idUsuario, :idProduto, :nomeProduto, :nomeUsua, :imgProd, :precoPagar, :enderecoEntre, :statusProd, :formaPagar, :obs, :telefoneUsua)");

        $sql->bindParam(":idUsuario", $id_usuario);
        $sql->bindParam(":idProduto", $idProd);
        $sql->bindParam(":nomeProduto", $nomeProd);
        $sql->bindParam(":nomeUsua", $nome_usuario);
        $sql->bindParam(":imgProd", $img);
        $sql->bindParam(":precoPagar", $preco);
        $sql->bindParam(":enderecoEntre", $end);
        $sql->bindParam(":statusProd", $status);
        $sql->bindParam(":formaPagar", $pagar);
        $sql->bindParam(":obs", $obser);
        $sql->bindParam(":telefoneUsua", $tel);

        echo "entro aqui";

        $sql->execute();
    }catch(PDOException $e){
        echo "Error: " . $e->getMessage();
    }
}
?>

ele imprime a mensagem "entro aqui " mas não insere os dados no banco e não retorna nem um erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não der com o ex

poste seu codigo de conexão

 

<?php

require("config.php");

$idProd = $_POST['idUsuario'];

$id_usuario = 1;
$nome_usuario = "guilherme";
$end = "avenida nao sei";
$pagar = "dinheiro";
$obser = "nada";
$tel = "12165151";

$sql = $pdo->prepare("SELECT * FROM produtos WHERE id = '$idProd'");
$sql->execute();
$contar = $sql->rowCount();
while ($ln = $sql->fetchObject()) {
    $nomeProd = $ln->nome_prod;
    $descricao = $ln->descricao_prod;
    $preco = $ln->preco;
    $status = $ln->status;
    $img = $ln->img;
}

if ($contar > 0) {
    try {
        $insert = $pdo->prepare("INSERT INTO pedidos(id_usuario, id_produto, nome_produto, nome_usuario, img_produto, preco_pagar, endereco_entrega, status, forma_pagamento, observacao, telefone_usuario) 
                                VALUES 
                                (:idUsuario, :idProduto, :nomeProduto, :nomeUsua, :imgProd, :precoPagar, :enderecoEntre, :statusProd, :formaPagar, :obs, :telefoneUsua)");

        $insert->execute(array(
            ":idUsuario" => $id_usuario,
            ":idProduto" => $idProd,
            ":nomeProduto" => $nomeProd,
            ":nomeUsua" => $nome_usuario,
            ":imgProd" => $img,
            ":precoPagar" => $preco,
            ":enderecoEntre" => $end,
            ":statusProd" => $status,
            ":formaPagar" => $pagar,
            ":obs" => $obser,
            ":telefoneUsua" => $tel
        ));


        echo "entro aqui";
        echo $stmt->rowCount();
        
    } catch (PDOException $e) {
        echo 'Error: ' . $e->getMessage();
    }
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu exemplo esta correto! 

 o que esta errado é como você esta chamando o bindParam;

você instanciou a variavel como nome de  "  $insert  " que inicia o PREPARE

e depois adicionou o parametro em uma variavel nao inciada,  " $sql "

 


<?php
require("config.php");

$idProd = $_POST['idUsuario'];

$id_usuario = 1;
$nome_usuario = "guilherme";
$end = "avenida nao sei";
$pagar = "dinheiro";
$obser = "nada";
$tel = "12165151";

$sql = $pdo->prepare("SELECT * FROM produtos WHERE id = '$idProd'");
$sql->execute();
$contar = $sql->rowCount();
while($ln = $sql->fetchObject()){
    $nomeProd = $ln->nome_prod;
    $descricao = $ln->descricao_prod;
    $preco = $ln->preco;
    $status = $ln->status;
    $img = $ln->img;
}

if($contar > 0){
    try{
        $insert = $pdo->prepare("INSERT INTO pedidos(id_usuario, id_produto, nome_produto, nome_usuario, img_produto, preco_pagar, endereco_entrega, status, forma_pagamento, observacao, telefone_usuario) 
                                VALUES 
                                (:idUsuario, :idProduto, :nomeProduto, :nomeUsua, :imgProd, :precoPagar, :enderecoEntre, :statusProd, :formaPagar, :obs, :telefoneUsua)");

        $insert->bindParam(":idUsuario", $id_usuario);
        $insert->bindParam(":idProduto", $idProd);
        $insert->bindParam(":nomeProduto", $nomeProd);
        $insert->bindParam(":nomeUsua", $nome_usuario);
        $insert->bindParam(":imgProd", $img);
        $insert->bindParam(":precoPagar", $preco);
        $insert->bindParam(":enderecoEntre", $end);
        $insert->bindParam(":statusProd", $status);
        $insert->bindParam(":formaPagar", $pagar);
        $insert->bindParam(":obs", $obser);
        $insert->bindParam(":telefoneUsua", $tel);

        echo "entro aqui";

        $insert->execute();
    }catch(PDOException $e){
        echo "Error: " . $e->getMessage();
    }
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por AndersonAlvesCoelho
      Ola Programadores de Plantão!!
      Eu tendo um problema em um sistema que eu criei. 
      Criei um sistema WEB de cadastro de questões dissertativa, porem o formulário de cadastro ta e uma tabelas os no BD, mais para frente a pesquisa ficara mais complicada por esse motivo. E também n consigo fazer o relacionamento no select de pesquisa. Olha em baixo o SELECT de pesquisa. 
       
      Mas agora eu quero separa cada campo do select de pesquisa em um tabela so, Ficando assim o bd:
      name db: db_quest;
      name tabelas:
      tb_ano: id (int), ano (int);
      tb_assunto: id (int), assunto(varchar);
      tb_banca : id (int), banca (varchar);
      tb_ cargo: id (int), cargo (varchar);
      tb_especialidade : id (int), especialidade (varchar);
      tb_formacao : id (int), formacao (varchar);
      tb_orgao : id (int), orgao (varchar);
      tb_qtdLinha : id (int), qtdLinha (int);
      tb_tema : id (int), tema(varchar);
       
      tb_quest:  id (int),  tb_ano (MULL),  tb_assunto (MULL), tb_banca (MULL), tb_formacao (MULL), tb_especialidade (MULL), tb_cargo (MULL), tb_orgao (MULL), tb_qtdLinha (MULL), tb_tema (MULL), enunciado (TEXT), padraoRes (TEXT), resolucao (TEXT), video (VARCHAR), material (VARCHAR), professor (VARCHAR) , exibir (INT).
       
      Blz. 
      A agora minha duvida e essa. Como vou fazer um formulário com esse banco ?
      Como vou fazer um formulário que tem campos de outras tabelas (de chaves estrangeira)?
       
      As imagens a baixo, são para mostrar o SELECT DE PESQUISA que usa para buscar questões no estilo https://qconcursos.com. 
      E também tem as imagens que mostra como esta o meu formulário de cadastro das questões
      pss: se poder manda alguns arquivos de eexemplo  eu agradeço muito




    • Por AndersonAlvesCoelho
      Ola Programadores de Plantão!!
      Eu tendo um problema em um sistema que eu criei. 
      Criei um sistema WEB de cadastro de questões dissertativa, porem o formulário de cadastro ta e uma tabelas os no BD, mais para frente a pesquisa ficara mais complicada por esse motivo. E também n consigo fazer o relacionamento no select de pesquisa. Olha em baixo o SELECT de pesquisa. 
       
      Mas agora eu quero separa cada campo do select de pesquisa em um tabela so, Ficando assim o bd:
      name db: db_quest;
      name tabelas:
      tb_ano: id (int), ano (int);
      tb_assunto: id (int), assunto(varchar);
      tb_ : id (int), (varchar);
      tb_ : id (int), (varchar);
      tb_ : id (int), (varchar);
      tb_ : id (int), (varchar);

    • Por paulo123araujo
      Bom, eu não estou conseguindo conectar com meu banco access.
      Quando eu executo ele sempre cai na mensagem "Banco de dados não encontrado", já verifiquei o php config e o odbc está habilitado.
      Segue o código abaixo:
      <?php $db = $_SERVER["DOCUMENT_ROOT"] ."/db/banco.accdb"; if (!file_exists($db)) { die("Banco de dados não encontrado."); } $dbNew = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$db; Uid=; Pwd=;"); $sql = "select * from clientes"; $rs = $dbNew->query($sql); while($result = $rs->fetch()) { echo $result[0].": ".$result[1]."<br />"; } ?>  
    • Por xleandrooo
      Bom gente eu to aprendendo agora essas coisa de criptografia com a senha então me desculpem se for erros bestas, eu estou com o projeto em que eu cadastro o usuario e a senha dele é guardada no banco criptografada, com a conta cadastrada eu quero fazer o login  só que a senha como ela e criptografada eu não consigo fazer o login, o codigo para criptografa a senha que usei foi " $senhaCripto = password_hash($senha,PASSWORD_DEFAULT);  esse codigo eu usei na pagina do cadastro"  eu tentei fazer o login mais não to conseguindo vou postar o codigo se poderem ajudar agradeço.
       
      <?php 

          session_start();
          include "conexao/conexao.php";
          $email = $_POST ["email"];
          $senha = $_POST ["senha"];
          $crip = password_hash($senha,PASSWORD_DEFAULT);
          
          $query = $conexao->prepare("select * from usuario where email = '$email' and senha = '$crip'");
          $query->execute();
          $resultado = $query->rowCount();
              
          if($resultado > 0) {
          header("Location: inicio.php");
              }else{
           echo "<script>
              location.href='Login.php'
          alert('Usuário ou senha incorretos');
      </script>";
          }
       ?>
    • Por brunosensatto
      Boa tarde pessoal.
      Sou iniciante em PHP e estou desenvolvendo um sistema de bolsas de estudos. Estou com dificuldade na seguinte questão.
       
      Tenho a tabela Bolsas onde as bolsas de estudos são cadastradas e tenho outras tabelas como cidade, cursos, instituição, etc. No formulário de cadastro da Bolsa, nas opções cidade, cursos instituição... eu faço uma consulta no Banco de Dados e retorno os valores num ComboBox. 
       
      <select class="form-control1" name="curso"> <option value="">Selecione ...</option> <?php // Instancia o objeto PDO $pdo = new PDO('mysql:host=localhost;dbname=bolsascursos', 'root', ''); $consulta = $pdo->query("SELECT id, nome FROM cursos;"); while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?php echo $linha['id'] ?>"><?php echo $linha['nome'] ?></option> <?php } ?> ?> </select> O exemplo acima ele insere o id capturado dentro da tabela Bolsas na coluna id_bolsa.
       
      Abaixo ta o código usado pra listar as Bolsas Cadastradas.
      <?php $select = "SELECT * from bolsas ORDER BY id DESC"; try { $result = $conexao->prepare($select); $result->execute(); $contar = $result->rowCount(); if($contar>0) { while($mostrar = $result->FETCH(PDO::FETCH_OBJ)) { ?> <?php echo $mostrar->curso;?> <?php echo $mostrar->categoria;?> <?php echo $mostrar->id_curso;?> .... <?php } } else { echo 'Não existem instituições cadastradas!'; } }catch(PDOException $e) { echo $e; } ?>  
      Minha dúvida é a seguinte: Como faço para que ao invés de amostrar o ID do curso, amostrar o Nome do Curso ?
      Eu li sobre INNER JOIN mas não consegui fazer nada que desse certo ...
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.