php - Get INSERT return on response

155

I have the following problem, I send a JSON to a PHP service (the staff that was responsible for PHP is no longer in the company) that inserts the JSON data into the database. The problem is that the way the PHP page is developed it returns me that the data was entered even when they are not! I need it, when something goes wrong, to show me what happened (why the insert was not done) so I can fix it. What should I change on the PHP page so it can satisfy the question I mentioned?

This is the page

<?php
    $startTime = microtime(true);
    include_once("../utils/config.php");
    include_once("../utils/utils.php");
    include_once("../services/rest.utils.php");

    function reviewAluno($aluno) {
        $aluno->nome = quoteOrNull($aluno->nome);
        $aluno->rm = quoteOrNull($aluno->rm);
        $aluno->rg = quoteOrNull($aluno->rg);
        $aluno->usuario = quoteOrNull($aluno->usuario);

        $aluno->senha = quoteOrNull($aluno->senha);
        $aluno->cursoAluno = quoteOrNull($aluno->cursoAluno);
        $aluno->urlFoto = quoteOrNull($aluno->urlFoto);
        $aluno->email = quoteOrNull($aluno->email);

        $aluno->rgEscolar = quoteOrNull($aluno->rgEscolar);
        $aluno->cpf = quoteOrNull($aluno->cpf);
        $aluno->naturalidade = quoteOrNull($aluno->naturalidade);
        $aluno->nacionalidade = quoteOrNull($aluno->nacionalidade);

        $aluno->dataNascimento = formataDataIsoToMySQL($aluno->dataNascimento);
        $aluno->endereco = quoteOrNull($aluno->endereco);

        $aluno->numero = quoteOrNull($aluno->numero);
        $aluno->complemento = quoteOrNull($aluno->complemento);
        $aluno->bairro = quoteOrNull($aluno->bairro);
        $aluno->cep = quoteOrNull($aluno->cep);

        $aluno->cidade = quoteOrNull($aluno->cidade);
        $aluno->estado = quoteOrNull($aluno->estado);
        $aluno->pais = quoteOrNull($aluno->pais);
        $aluno->telefone = quoteOrNull($aluno->telefone);

        $aluno->telefoneResidencial = quoteOrNull($aluno->telefoneResidencial);
        $aluno->telefoneCelular = quoteOrNull($aluno->telefoneCelular);
        $aluno->certidaoNumero = quoteOrNull($aluno->certidaoNumero);
        $aluno->certidaoFolha = quoteOrNull($aluno->certidaoFolha);

        $aluno->certidaoLivro = quoteOrNull($aluno->certidaoLivro);
        $aluno->certidaoDistrito = quoteOrNull($aluno->certidaoDistrito);
        $aluno->certidaoCidade = quoteOrNull($aluno->certidaoCidade);
        $aluno->certidaoEstado = quoteOrNull($aluno->certidaoEstado);

        $aluno->certidaoEmissao = formataDataIsoToMySQL($aluno->certidaoEmissao);
        $aluno->certidaoHash = quoteOrNull($aluno->certidaoHash);
        $aluno->rgOrgao = quoteOrNull($aluno->rgOrgao);
        $aluno->rgDataEmissao = formataDataIsoToMySQL($aluno->rgDataEmissao);

        $aluno->religiao = quoteOrNull($aluno->religiao);
        $aluno->catraca = quoteOrNull($aluno->catraca);
        $aluno->trabalhoEmpresa = quoteOrNull($aluno->trabalhoEmpresa);
        $aluno->trabalhoTelefone = quoteOrNull($aluno->trabalhoTelefone);

        $aluno->medicamento1 = quoteOrNull($aluno->medicamento1);
        $aluno->medicamento2 = quoteOrNull($aluno->medicamento2);

        $aluno->medicamento3 = quoteOrNull($aluno->medicamento3);
        $aluno->medicamento4 = quoteOrNull($aluno->medicamento4);
        $aluno->alergia = quoteOrNull($aluno->alergia);
        $aluno->disturbioVisual = quoteOrNull($aluno->disturbioVisual);
        $aluno->disturbioAuditivo = quoteOrNull($aluno->disturbioAuditivo);

        $aluno->hospital = quoteOrNull($aluno->hospital);
        $aluno->medicoPessoal = quoteOrNull($aluno->medicoPessoal);
        $aluno->planoSaude = quoteOrNull($aluno->planoSaude);
        $aluno->restricaoAlimentar = quoteOrNull($aluno->restricaoAlimentar);

        $aluno->observacoesSaude = quoteOrNull($aluno->observacoesSaude);
        $aluno->tituloEleitor = quoteOrNull($aluno->tituloEleitor);
        $aluno->certificadoMilitar = quoteOrNull($aluno->certificadoMilitar);
        $aluno->estadoCivil = quoteOrNull($aluno->estadoCivil);

        $aluno->escolaMedio = quoteOrNull($aluno->escolaMedio);
        $aluno->escolaCidade = quoteOrNull($aluno->escolaCidade);
        $aluno->escolaEstado = quoteOrNull($aluno->escolaEstado);
        $aluno->escolaAno = quoteOrNull($aluno->escolaAno);

        $aluno->dataFalecimento = formataDataIsoToMySQL($aluno->dataFalecimento);
        $aluno->contrato = quoteOrNull($aluno->contrato);
        $aluno->ultimaAtualizacao = formataDataIsoToMySQL($aluno->ultimaAtualizacao);

        $aluno->ultimaPublicacao = formataDataIsoToMySQL($aluno->ultimaPublicacao);
        $aluno->autoRespLegal = quoteOrNull($aluno->autoRespLegal);
        $aluno->autoRespFinan = quoteOrNull($aluno->autoRespFinan);

        $aluno->podeFamiliares = quoteOrNull($aluno->podeFamiliares);
        $aluno->podeSozinho = quoteOrNull($aluno->podeSozinho);
        $aluno->podeSozinhoExtra = quoteOrNull($aluno->podeSozinhoExtra);

        $aluno->podeEsperarFora = quoteOrNull($aluno->podeEsperarFora);
        $aluno->validadeAcesso = formataDataIsoToMySQL($aluno->validadeAcesso);
    }

    $body = trim(file_get_contents('php://input'));
    $list = carregaCorpo($body);

        if (signatureCheck($body)) {
        $tableAluno = getTabela("Aluno");
        $cta = 0;
        $database = conectaDatabase();
        $script = '';
        foreach ($list as $aluno) { 
            reviewAluno($aluno);

            $sqlDelete = "DELETE FROM {$tableAluno} WHERE alunoID = {$aluno->alunoID};";
            $sqlInsert = "INSERT INTO {$tableAluno} ";
            $sqlInsert .= '(alunoID, nome, rm, rg, usuario, senha, cursoAluno, urlFoto, email, ';
            $sqlInsert .= ' rgEscolar, cpf, naturalidade, nacionalidade, sexo, raca, dataNascimento, ';
            $sqlInsert .= ' endereco, numero, complemento, bairro, cep, cidade, estado, pais, ';
            $sqlInsert .= ' telefone, telefoneResidencial, telefoneCelular, certidaoNumero, certidaoFolha, ';
            $sqlInsert .= ' certidaoLivro, certidaoDistrito, certidaoCidade, certidaoEstado, ';
            $sqlInsert .= ' certidaoEmissao, certidaoHash, rgOrgao, rgDataEmissao, religiao, ';
            $sqlInsert .= ' catraca, trabalhoEmpresa, trabalhoTelefone,';
            $sqlInsert .= ' medicamento1, medicamento2, medicamento3, ';
            $sqlInsert .= ' medicamento4, alergia, desmaio, vacinas, disturbioVisual, ';
            $sqlInsert .= ' disturbioAuditivo, acidente, hospital, medicoPessoal, planoSaude, ';
            $sqlInsert .= ' restricaoAlimentar, observacoesSaude, tituloEleitor, certificadoMilitar, ';
            $sqlInsert .= ' estadoCivil, escolaMedio, escolaCidade, escolaEstado, escolaAno, ';
            $sqlInsert .= ' dataFalecimento, contrato, ultimaAtualizacao, ultimaPublicacao, ';
            $sqlInsert .= ' autoRespLegal, autoRespFinan, podeFamiliares, podeSozinho, ';
            $sqlInsert .= ' podeSozinhoExtra, podeEsperarFora, validadeAcesso) ';
            $sqlInsert .= ' VALUES ( ';
            $sqlInsert .= " {$aluno->alunoID}, {$aluno->nome}, {$aluno->rm}, {$aluno->rg}, {$aluno->usuario}, ";
            $sqlInsert .= " {$aluno->senha}, {$aluno->cursoAluno}, {$aluno->urlFoto}, {$aluno->email}, ";
            $sqlInsert .= " {$aluno->rgEscolar}, {$aluno->cpf}, {$aluno->naturalidade}, {$aluno->nacionalidade}, ";
            $sqlInsert .= " {$aluno->sexo}, {$aluno->raca}, {$aluno->dataNascimento}, {$aluno->endereco}, ";
            $sqlInsert .= " {$aluno->numero}, {$aluno->complemento}, {$aluno->bairro}, {$aluno->cep}, ";
            $sqlInsert .= " {$aluno->cidade}, {$aluno->estado}, {$aluno->pais}, {$aluno->telefone}, ";
            $sqlInsert .= " {$aluno->telefoneResidencial}, {$aluno->telefoneCelular}, {$aluno->certidaoNumero}, {$aluno->certidaoFolha}, ";
            $sqlInsert .= " {$aluno->certidaoLivro}, {$aluno->certidaoDistrito}, {$aluno->certidaoCidade}, {$aluno->certidaoEstado}, ";
            $sqlInsert .= " {$aluno->certidaoEmissao}, {$aluno->certidaoHash}, {$aluno->rgOrgao}, {$aluno->rgDataEmissao}, ";
            $sqlInsert .= " {$aluno->religiao}, {$aluno->catraca}, {$aluno->trabalhoEmpresa}, {$aluno->trabalhoTelefone}, ";
            $sqlInsert .= " {$aluno->medicamento1}, {$aluno->medicamento2}, ";
            $sqlInsert .= " {$aluno->medicamento3}, {$aluno->medicamento4}, {$aluno->alergia}, {$aluno->desmaio}, ";
            $sqlInsert .= " {$aluno->vacinas}, {$aluno->disturbioVisual}, {$aluno->disturbioAuditivo}, {$aluno->acidente}, ";
            $sqlInsert .= " {$aluno->hospital}, {$aluno->medicoPessoal}, {$aluno->planoSaude}, {$aluno->restricaoAlimentar}, ";
            $sqlInsert .= " {$aluno->observacoesSaude}, {$aluno->tituloEleitor}, {$aluno->certificadoMilitar}, {$aluno->estadoCivil}, ";
            $sqlInsert .= " {$aluno->escolaMedio}, {$aluno->escolaCidade}, {$aluno->escolaEstado}, {$aluno->escolaAno}, ";
            $sqlInsert .= " {$aluno->dataFalecimento}, {$aluno->contrato}, {$aluno->ultimaAtualizacao}, ";
            $sqlInsert .= " {$aluno->ultimaPublicacao}, {$aluno->autoRespLegal}, {$aluno->autoRespFinan}, ";
            $sqlInsert .= " {$aluno->podeFamiliares}, {$aluno->podeSozinho}, {$aluno->podeSozinhoExtra}, ";
            $sqlInsert .= " {$aluno->podeEsperarFora}, {$aluno->validadeAcesso} ";
            $sqlInsert .= ");";

            sqlExecute($database, $sqlDelete);
            sqlExecute($database, $sqlInsert);


            $script .= $sqlDelete . "\n"; 
            $script .= $sqlInsert . "\n";
            $cta++;
        }
        desconectaDB($database);
        $description = "{$cta} alunos foram registrados";
        $status = "200";

        salvaScript($script, 'alunos');
    } else {
        $description = "não autorizado";
        $status = "401";
    }

    $endTime = microtime(true);
    $timeSpent = $endTime - $startTime;

    echo "{\"status\":{$status}, \"descricao\":\"$description\", \"timeSpent\": \"{$timeSpent}\"}"; 
693

Answer

Solution:

Find the code that definesfunction sqlExecute() (I'm guessing it's inutils.php) and the line where it runsmysql_query() (just a guess; there are now several better ways to do this but this code looks ancient so that's what it probably does).

Make sure thatsqlExecute() returns the return value ofmysql_query(), which is a boolean for success.

Save the outcome of both queries in a variable:

        $success = sqlExecute($database, $sqlDelete);
        $success = $success && sqlExecute($database, $sqlInsert);

Then use$success in anif condition to decide whether to return the JSON for "success" or a different JSON message for "error".

(Sidenote: This entire script is a horror show, and should ideally be thrown away and rewritten, but that's a different topic.)

People are also looking for solutions to the problem: php - i am unable to upload multiple images in database

Source

Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.