我遇到以下问题,我将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}\"}";
答案 0 :(得分:0)
找到定义function sqlExecute()
的代码(我猜它在utils.php
中)和运行它的行mysql_query()
(只是一个猜测;现在有几种更好的方法这样,但是这段代码看起来很古老,所以大概就是这样。
确保sqlExecute()
返回mysql_query()
的返回值,这是成功的布尔值。
将两个查询的结果保存在变量中:
$success = sqlExecute($database, $sqlDelete);
$success = $success && sqlExecute($database, $sqlInsert);
然后在$success
条件下使用if
来决定是针对“成功”返回JSON还是针对“错误”返回不同的JSON消息。
(旁注:整个脚本是恐怖的表演,应该扔掉并重写,但这是一个不同的话题。)