获取INSERT响应的回报

时间:2019-05-21 12:45:41

标签: php json

我遇到以下问题,我将JSON发送到PHP服务 (负责PHP的员工不再在公司内),将JSON数据插入数据库。 问题在于,PHP页面的开发方式使我返回即使没有输入数据也要输入的信息!当出现问题时,我需要它来告诉我发生了什么(为什么插入未完成),以便我可以解决它。 我应该在PHP页面上进行哪些更改才能使其满足我提到的问题?

这是页面

<?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}\"}"; 

1 个答案:

答案 0 :(得分:0)

找到定义function sqlExecute()的代码(我猜它在utils.php中)和运行它的行mysql_query()(只是一个猜测;现在有几种更好的方法这样,但是这段代码看起来很古老,所以大概就是这样。

确保sqlExecute()返回mysql_query()的返回值,这是成功的布尔值。

将两个查询的结果保存在变量中:

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

然后在$success条件下使用if来决定是针对“成功”返回JSON还是针对“错误”返回不同的JSON消息。

(旁注:整个脚本是恐怖的表演,应该扔掉并重写,但这是一个不同的话题。)