Não consigo fazer insert no banco de dados

2 respostas
J

olá,
estou tentado criar um simples metodo para enserir no bd, mas não consigo fazer isso funcionar. Já estou quase tendo um ataque cardiaco e nada. por isso venho pedir ajuda aqui no forum. não consegui encontrar um estou fazer M-erro, até desanima.

meu codigo:

arquivo conexao:

<?php try{ $con = new PDO("mysql:host=localhost;dbname=transportadora","root",""); }catch(PDOException $e){ echo "Erro ao conectar ao Bando de dados." . $e.getMessege(); die(); }

classe cliente:

<?php

Class Cliente {

    private $id;
    private $nome;
    private $cpf;
    private $telefone;
    private $email;

    public function getId(){
        return $this->id;
    }

    public function setId($id){
        $this->id = (int) $id;
    }

    public function getNome(){
        return $this->nome;
    }

    public function setNome($nome){
        $this->nome = $nome;
    }

    public function getCpf(){
        return $this->cpf;
    }

    public function setCpf($cpf){
        $this->cpf = $cpf;
    }
   
    public function getTelefone(){
        return $this->telefone;
    }

    public function setTelefone($telefone){
        $this->telefone = $telefone;
    }

    public function getEmail(){
        return $this->email;
    }

    public function setemail($email){
        $this->cpf = $email;
    }
}

class com metodo de inserir:

<?php

Class ClienteDao{

    private $con;

     public function __construct(PDO $con){
        $this->con = $con;
    }

    public function inserirCliente(Cliente $cliente){
        $nome = $cliente->getNome();
        $cpf = $cliente->getCpf();
        $telefone = $cliente->getTelefone();
        $email = $cliente->getEmail();

        $query = "INSERT INTO cliente (nome, cpf, telefone, email) VALUES(?,?,?,?)";
        $stmt = $this->con->prepare($query);
        
        $stmt->bindParam(1, $nome);
        $stmt->bindParam(2, $cpf);
        $stmt->bindParam(3, $telefone);
        $stmt->bindParam(4, $email);
        $stmt->execute();
    }
}

arquivo que usa o metodo:

<?php

session_start();

require_once '../conexao/conexao.php';

require_once 'cliente.class.php';

require_once 'clienteDao.class.php';

$clienteDao = new ClienteDao($con);

$cliente = new Cliente();

$cliente->setNome("$_POST['nome']");

//echo $_POST['nome'];

$cliente->setCpf($_POST['cpf']);

$cliente->setTelefone($_POST['telefone']);

$cliente->setEmail($_POST['email']);

$clienteDao->inserirCliente($cliente);

 

header('location: ../clienteFormulario.php');

die();

meu formulario:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  
</head>
<body>

<div class="container">
  <h2>Cadastro Clientes</h2>
  <form action="controller/inserirCliente.php" method="post">
    <div class="form-group">
      <label >Nome:</label>
      <input type="text" class="form-control" placeholder="Enter email" name="nome">
    </div>
    <div class="form-group">
      <label for="email">Cpf:</label>
      <input type="text" class="form-control"  placeholder="Enter email" name="cpf">
    </div>
    <div class="form-group">
      <label for="email">Telefone:</label>
      <input type="text" class="form-control"  placeholder="Enter email" name="telefone">
    </div>
    <div class="form-group">
      <label for="email">Email:</label>
      <input type="text" class="form-control"  placeholder="Enter email" name="email">
    </div>
    
    <button type="submit" class="btn btn-primary">cadastrar</button>
  </form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>

OBs:
“Não está aparecendo nenhuma mensagem de erro.”

agradeço desde já.

2 Respostas

C

Parse error : syntax error, unexpected ‘’ (T_ENCAPSED_AND_WHITESPACE), expecting ‘-’ or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\php\CleinteDao\inserirCliente.php on line 15

No caso o erro aconteceu aqui:

$cliente->setNome("$_POST['nome']");

Solução 1: Remover as aspas duplas [ " ]

$cliente->setNome($_POST['nome']);

Solução 2: Adicionar chaves [ { } ]

$cliente->setNome("{$_POST['nome']}");
J

fiz a mesma coisa novamente e funcionou por algum motivo ‘-’.
Obrigado mesmo assim.

Criado 14 de maio de 2019
Ultima resposta 16 de mai. de 2019
Respostas 2
Participantes 2