I can not register a record in the database [closed]

-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!';
            }
    }
}
    
asked by anonymous 07.10.2018 / 03:51

1 answer

0

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

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

I suggest that, in order to be able to see when errors occur, put your query running into a variable and then read it or return it ...

Reading straight into the class (Not legal for DAO class, use to see the 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()));
    
07.10.2018 / 08:08