I cannot register a record in the database

Asked

Viewed 52 times

-1

<?php
    session_start();
        if(!(isset($_SESSION['usuario']))){
            header("location: index.php");
        }

    include './classes/Conexao.class.php';
    include './classes/DAO/EmpresasDAO.class.php';
    include './classes/entidades/Empresas.class.php';

    $EmpresasDAO = new EmpresasDAO();
    $Empresas = new Empresas();

    //ação para inserir um novo cadastro na base de dados
    require_once './actions/inserirEmpresas.action.php';
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>SIGIO - PAINEL</title>
        <link rel="stylesheet" type="text/css" href="assets/css/style.painel.css">
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
        <link rel="stylesheet" type="text/css" href="assets/bootstrap/css/bootstrap.min.css">
        <script type="text/javascript" src="assets/js/jquery-3.3.1.slim.min.js"></script>
        <script type="text/javascript" src="assets/js/popper.min.js"></script>
        <script type="text/javascript" src="assets/bootstrap/js/bootstrap.js"></script>
    </head>
<body>

    <div class="panelbar">
        <div class="userTools">
            <div class="btn-group">
                <button type="button" class="btn btn-dark dropdown-toggle btn-sm" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    <i class="fa fa-user-circle-o"></i>
                    <?php echo strtoupper($_SESSION['usuario']);?>
                </button>

                <div class="dropdown-menu dropdown-menu-right">
                    <button type="button" class="dropdown-item btn-sm">
                        <i class="fa fa-user"></i>
                        Perfil
                    </button>

                    <button type="button" class="dropdown-item btn-sm">
                        <i class="fa fa-gear"></i>
                        Configurações
                    </button>

                    <button type="button" class="dropdown-item btn-sm">
                        <i class="fa fa-question"></i>
                        Ajuda
                    </button>

                    <div class="dropdown-divider"></div>

                    <button type="button" class="dropdown-item btn-sm" data-toggle="modal" data-target="#modal-logout">
                        <i class="fa fa-sign-out"></i>
                        Sair
                    </button>
                </div>
            </div>

            <!-- Modal -->
            <div class="modal fade" id="modal-logout" tabindex="-1" role="dialog" aria-labelledby="modal-logout" aria-hidden="true">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="exampleModalLabel">Deseja Realmente Sair?</h5>
                                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                  <span aria-hidden="true">&times;</span>
                                </button>
                        </div>

                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
                            <button type="button" class="btn btn-danger">Sim, Desejo.</button>
                        </div>
                    </div>
                </div>
            </div>
        </div><!--userTools-->
    </div><!--panelbar-->

    <div class="systemTools">
        <button type="button" class="btn btn-success" data-toggle="modal" data-target="#modal-inserir">Novo Registro</button>
    </div><!--systemTools-->

    <div class="tabela-dados table-responsive-md">
        <table class="table table-bordered table-hover">
            <thead class="thead-dark">
                <tr>
                    <th scope="col">ID</th>
                    <th scope="col">CNPJ</th>
                    <th scope="col">Razão Social</th>
                    <th scope="col">Nome Fantasia</th>
                    <th scope="col">Telefone</th>
                    <th scope="col">Celular</th>
                    <th scope="col">Contato Responsável</th>
                    <th scope="col">Status</th>
                    <th scope="col">Ações</th>
                </tr>
            </thead>

            <tbody>
                <!--exibição do corpo da tabela listar do painel-->
                <?php require_once './actions/listarEmpresas.action.php';?>
            </tbody>
        </table>
    </div><!--tabela-dados-->

    <div class="modal fade" id="modal-inserir" tabindex="-1" aria-labelledby="modal-inserir" aria-hidden="true">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h6 class="modal-title">Inserir Novo Registro</h6>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>

                <form action="painel.php" method="POST">
                    <div class="modal-body">
                        <div class="row">
                            <div class="col-sm-4">
                                <label for="cnpj">CNPJ</label>
                                <input type="text" class="form-control" name="cnpj" maxlength="14" required>
                            </div>

                            <div class="col-sm-8">
                                <label for="razao">Razão Social</label>
                                <input type="text" class="form-control" name="razao" required>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-sm-12">
                                <label for="fantasia">Nome Fantasia</label>
                                <input type="text" class="form-control" name="fantasia" required>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-sm-12">
                                <label for="logradouro">Logradouro</label>
                                <input type="text" class="form-control" name="logradouro">
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-sm-6">
                                <label for="bairro">Bairro</label>
                                <input type="text" class="form-control" name="bairro">
                            </div>

                            <div class="col-sm-6">
                                <label for="cidade">Cidade</label>
                                <select class="custom-select" name="cidade" required>
                                    <option selected>Selecione a Cidade</option>
                                    <option value="Jaboatão dos Guararapes">Jaboatão dos Guararapes</option>
                                    <option value="Recife">Recife</option>
                                    <option value="Olinda">Olinda</option>
                                </select>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-sm-3">
                                <label for="telefone">Telefone</label>
                                <input type="text" class="form-control" name="telefone" maxlength="10" required>
                            </div>

                            <div class="col-sm-3">
                                <label for="celular">Celular</label>
                                <input type="text" class="form-control" name="celular" maxlength="11" required>
                            </div>

                            <div class="col-sm-6">
                                <label for="email">Email</label>
                                <input type="text" class="form-control" name="email" maxlength="30" required>
                            </div>

                            <div class="col-sm-3">
                                <label for="responsavel">Contato Responsável</label>
                                <input type="text" class="form-control" name="responsavel" required>
                            </div>

                            <div class="col-sm-3">
                                <label for="status">Status</label>
                                <select class="custom-select" name="status" required>
                                    <option selected>Selecione o Status</option>
                                    <option value="Contato Futuro">A Contatar</option>
                                    <option value="Contato Feito">Contato Feito</option>
                                    <option value="Contato Interrompido">Contato Interrompido</option>
                                    <option value="A Visitar">A Visitar</option>
                                    <option value="Visitado">Visitado</option>
                                    <option value="A Fechar">A Fechar</option>
                                    <option value="Fechado">Fechado</option>
                                </select>
                            </div>
                        </div>

                        <div class="col-sm-5">
                            <label for="usuario">Usuário</label>
                            <input type="text" class="form-control" name="usuario" required>
                        </div>

                        <div class="row">
                            <div class="col-sm-12">
                            <label for="observacao">Observações</label>
                            <textarea class="form-control" name="observacao" rows="2"></textarea><br/>
                            </div>
                        </div>


                    </div><!--modal-body-->

                    <input type="text" hidden="" name="usuario" value="<?php echo $_SESSION['usuario']; ?>">

                    <div class="modal-footer">
                        <input type="reset" class="btn btn-secondary btn-sm" value="Limpar Campos">
                        <input type="submit" class="btn btn-primary btn-sm" name="cadastrar" value="Cadastrar">
                    </div>
                </form>
            </div>
        </div>
    </div>

    <!--exibição dos modais de visualização de cadastros-->
    <?php require_once './actions/verEmpresas.action.php';?>

    <!--exibição dos modais de edição de cadastros-->

    </body>
</html>







<?php

    class Conexao{
        private $db_user   = "root";
        private $db_pass   = "root";
        private $db_route  = "localhost";
        private $db_schema = "sigio_prospects";
        private $con       = "";

        public function __construct(){
            $this->con = mysqli_connect($this->db_route, $this->db_user, $this->db_pass) or die ("A Conexão com o Banco de Dados Falhou! " .mysqli_error($this->con));
            mysqli_select_db($this->con, $this->db_schema) or die ("A Conexão com o Banco de Dados Falhou! " . mysqli_error($this->con));
        }

        public function getCon(){
            return $this->con;
        }
    }






<?php

    class EmpresasDAO {
        private $conexao;

        public function __construct() {
            $this->conexao = new Conexao();
        }

        public function inserir($Empresas){
            $sql = "INSERT INTO empresas (cnpj, razao_empresas, fantasia_empresas, logradouro_empresas, bairro_empresas, cidade_empresas, responsavel_empresas, telefone_empresas"
                    . "email_empresas, status_empresas, observacao_empresas, usuario_cadastro) VALUES ("
                    . "'" . $Empresas->getCnpj() ."', '" . $Empresas->getRazao() ."',
                    . '" . $Empresas->getFantasia() ."','" . $Empresas->getLogradouro() ."', 
                    '" . $Empresas->getBairro() ."', '" . $Empresas->getCidade() ."',"
                    . "'" . $Empresas->getResponsavel() ."','" . $Empresas->getTelefone() ."',
                    '" . $Empresas->getCelular() ."','" . $Empresas->getEmail() ."',"
                    . "'" . $Empresas->getStatus() ."','" . $Empresas->getObservacao() ."',"
                    . "'" . $Empresas->getUsuario() ."' )";
            if(mysqli_query($this->conexao->getCon(), $sql)){
                return true;
            }else{
                return false;
            }
        }

        $Empresas->setCnpj($cnpj);
        $Empresas->setRazao($razao);
        $Empresas->setFantasia($fantasia);
        $Empresas->setLogradouro($logradouro);
        $Empresas->setBairro($bairro);
        $Empresas->setCidade($cidade);
        $Empresas->setResponsavel($responsavel);
        $Empresas->setTelefone($telefone);
        $Empresas->setCelular($celular);
        $Empresas->setEmail($email);
        $Empresas->setStatus($status);
        $Empresas->setObservacao($observacao);
        $Empresas->setUsuario($usuario);

        $resultado = $EmpresasDAO->inserir($Empresas);
            if($resultado == true){
                header('location: painel.php');
            }else{
                echo 'Falha ao inserir empresa!';
            }
    }
}
  • Could inform what is the error message, code or something...

  • Worse than no error returns, only the Else message I put in the action. I edited the post and put the part where I speak that returns the message: "Failed to insert company!"

1 answer

0


Your error is in the SQL variable inside the DAO class, in the insert method, where you generate the fields for insertion, and when skipping line and concatenating the query data, forgot to put a comma between the fields:

[...] telefone_empresas," // A vírgula foi esquecida neste ponto...
. "email_empresas, [...]

I suggest that, so you can see when errors occur, put your query running into a variable and then read or return it...

Reading straight into class (Not cool for DAO class, use to see results when testing only):

$res = mysqli_query($link->getCon(), $query) or die(mysqli_error($link->getCon()));

if ($res) {
   print "Ok, Cadastrado!";
} else {
   print "$res";
}

Or returning:

return $res = mysqli_query($link->getCon(), $query) or die(mysqli_error($link->getCon()));

Browser other questions tagged

You are not signed in. Login or sign up in order to post.