salvar.php — leitura técnica completa

sistema/painel/paginas/simulador/salvar.php
Endpoint que salva metadados da simulação e trata upload da foto original.

SimuladorEndpoint AJAX de persistência170 linhas

Responsabilidade do arquivo

Endpoint que salva metadados da simulação e trata upload da foto original.

Dependências observadas:
Conexão PDO / configurações globaisUpload de arquivosBanco de dados

Tipo

Endpoint AJAX de persistência

Grupo

Simulador

Total de linhas

170

Código completo

1<?php 2require_once("../../../conexao.php"); 3$tabela = 'simulacoes_protese'; 4 5$id = @$_POST['id']; 6$cliente = @$_POST['cliente']; 7$id_protese = @$_POST['id_protese']; 8$observacoes = @$_POST['observacoes']; 9$data_simulacao = @$_POST['data_simulacao']; 10$foto_original_atual = @$_POST['foto_original_atual']; 11$imagem_simulada_atual = @$_POST['imagem_simulada_atual']; 12 13if($cliente == ""){ 14 echo 'Selecione um Cliente'; 15 exit(); 16} 17 18if($id_protese == ""){ 19 echo 'Selecione uma Prótese'; 20 exit(); 21} 22 23if($data_simulacao == ""){ 24 echo 'Informe a Data da Simulação'; 25 exit(); 26} 27 28$nome_img_original = $foto_original_atual; 29$nome_img_simulada = $imagem_simulada_atual; 30 31$pasta_upload = __DIR__ . '/../../images/simulacoes/'; 32 33if(!is_dir($pasta_upload)){ 34 echo 'Pasta de imagens da simulação não encontrada'; 35 exit(); 36} 37 38if(!is_writable($pasta_upload)){ 39 echo 'Pasta de imagens da simulação sem permissão de escrita'; 40 exit(); 41} 42 43if(@$_FILES['foto_original']['name'] != ''){ 44 45 if($_FILES['foto_original']['error'] != 0){ 46 echo 'Erro ao enviar a Foto Original'; 47 exit(); 48 } 49 50 if(!is_uploaded_file($_FILES['foto_original']['tmp_name'])){ 51 echo 'Arquivo da Foto Original inválido'; 52 exit(); 53 } 54 55 $foto_original = $_FILES['foto_original']['name']; 56 $extensao = strtolower(pathinfo($foto_original, PATHINFO_EXTENSION)); 57 58 if($extensao != 'png' && $extensao != 'jpg' && $extensao != 'jpeg' && $extensao != 'webp'){ 59 echo 'Formato da Foto Original não permitido'; 60 exit(); 61 } 62 63 $nome_img_original = md5(uniqid()) . "." . $extensao; 64 $caminho = $pasta_upload . $nome_img_original; 65 66 $upload_original = move_uploaded_file($_FILES['foto_original']['tmp_name'], $caminho); 67 68 if($upload_original == false){ 69 echo 'Erro ao salvar a Foto Original'; 70 exit(); 71 } 72 73 if(!file_exists($caminho)){ 74 echo 'Arquivo da Foto Original não foi gravado'; 75 exit(); 76 } 77 78 if($foto_original_atual != ""){ 79 $caminho_antigo = $pasta_upload . $foto_original_atual; 80 if(file_exists($caminho_antigo)){ 81 @unlink($caminho_antigo); 82 } 83 } 84} 85 86if(@$_FILES['imagem_simulada']['name'] != ''){ 87 88 if($_FILES['imagem_simulada']['error'] != 0){ 89 echo 'Erro ao enviar a Imagem Simulada'; 90 exit(); 91 } 92 93 if(!is_uploaded_file($_FILES['imagem_simulada']['tmp_name'])){ 94 echo 'Arquivo da Imagem Simulada inválido'; 95 exit(); 96 } 97 98 $imagem_simulada = $_FILES['imagem_simulada']['name']; 99 $extensao2 = strtolower(pathinfo($imagem_simulada, PATHINFO_EXTENSION)); 100 101 if($extensao2 != 'png' && $extensao2 != 'jpg' && $extensao2 != 'jpeg' && $extensao2 != 'webp'){ 102 echo 'Formato da Imagem Simulada não permitido'; 103 exit(); 104 } 105 106 $nome_img_simulada = md5(uniqid()) . "." . $extensao2; 107 $caminho2 = $pasta_upload . $nome_img_simulada; 108 109 $upload_simulada = move_uploaded_file($_FILES['imagem_simulada']['tmp_name'], $caminho2); 110 111 if($upload_simulada == false){ 112 echo 'Erro ao salvar a Imagem Simulada'; 113 exit(); 114 } 115 116 if(!file_exists($caminho2)){ 117 echo 'Arquivo da Imagem Simulada não foi gravado'; 118 exit(); 119 } 120 121 if($imagem_simulada_atual != ""){ 122 $caminho_antigo2 = $pasta_upload . $imagem_simulada_atual; 123 if(file_exists($caminho_antigo2)){ 124 @unlink($caminho_antigo2); 125 } 126 } 127} 128 129$query = $pdo->prepare("SELECT * FROM $tabela WHERE cliente = :cliente AND id_protese = :id_protese AND data_simulacao = :data_simulacao"); 130$query->bindValue(":cliente", $cliente); 131$query->bindValue(":id_protese", $id_protese); 132$query->bindValue(":data_simulacao", $data_simulacao); 133$query->execute(); 134$res = $query->fetchAll(PDO::FETCH_ASSOC); 135 136if(@count($res) > 0 and $id != $res[0]['id']){ 137 echo 'Registro já Cadastrado, escolha outro!!'; 138 exit(); 139} 140 141if($id == ""){ 142 $query = $pdo->prepare("INSERT INTO $tabela SET 143 cliente = :cliente, 144 id_protese = :id_protese, 145 foto_original = :foto_original, 146 imagem_simulada = :imagem_simulada, 147 observacoes = :observacoes, 148 data_simulacao = :data_simulacao"); 149}else{ 150 $query = $pdo->prepare("UPDATE $tabela SET 151 cliente = :cliente, 152 id_protese = :id_protese, 153 foto_original = :foto_original, 154 imagem_simulada = :imagem_simulada, 155 observacoes = :observacoes, 156 data_simulacao = :data_simulacao 157 WHERE id = :id"); 158 $query->bindValue(":id", $id); 159} 160 161$query->bindValue(":cliente", $cliente); 162$query->bindValue(":id_protese", $id_protese); 163$query->bindValue(":foto_original", $nome_img_original); 164$query->bindValue(":imagem_simulada", $nome_img_simulada); 165$query->bindValue(":observacoes", $observacoes); 166$query->bindValue(":data_simulacao", $data_simulacao); 167$query->execute(); 168 169echo 'Salvo com Sucesso'; 170?>

Leitura linha por linha

LinhaCódigoExplicação técnica
1<?php Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor.
2require_once("../../../conexao.php");Importa `../../../conexao.php` para disponibilizar conexão, sessão, funções utilitárias ou validações necessárias ao restante do fluxo.
3$tabela = 'simulacoes_protese';Centraliza o nome da tabela `simulacoes_protese` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
4 Linha em branco usada para separar blocos e melhorar a leitura.
5$id = @$_POST['id'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
6$cliente = @$_POST['cliente'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
7$id_protese = @$_POST['id_protese'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
8$observacoes = @$_POST['observacoes'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
9$data_simulacao = @$_POST['data_simulacao'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
10$foto_original_atual = @$_POST['foto_original_atual'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
11$imagem_simulada_atual = @$_POST['imagem_simulada_atual'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
12 Linha em branco usada para separar blocos e melhorar a leitura.
13if($cliente == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
14 echo 'Selecione um Cliente';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
15 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
16}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
17 Linha em branco usada para separar blocos e melhorar a leitura.
18if($id_protese == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
19 echo 'Selecione uma Prótese';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
20 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
21}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
22 Linha em branco usada para separar blocos e melhorar a leitura.
23if($data_simulacao == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
24 echo 'Informe a Data da Simulação';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
25 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
26}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
27 Linha em branco usada para separar blocos e melhorar a leitura.
28$nome_img_original = $foto_original_atual;Define a variável `$nome_img_original`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
29$nome_img_simulada = $imagem_simulada_atual;Define a variável `$nome_img_simulada`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
30 Linha em branco usada para separar blocos e melhorar a leitura.
31$pasta_upload = __DIR__ . '/../../images/simulacoes/';Define a variável `$pasta_upload`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
32 Linha em branco usada para separar blocos e melhorar a leitura.
33if(!is_dir($pasta_upload)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
34 echo 'Pasta de imagens da simulação não encontrada';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
35 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
36}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
37 Linha em branco usada para separar blocos e melhorar a leitura.
38if(!is_writable($pasta_upload)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
39 echo 'Pasta de imagens da simulação sem permissão de escrita';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
40 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
41}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
42 Linha em branco usada para separar blocos e melhorar a leitura.
43if(@$_FILES['foto_original']['name'] != ''){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
44 Linha em branco usada para separar blocos e melhorar a leitura.
45 if($_FILES['foto_original']['error'] != 0){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
46 echo 'Erro ao enviar a Foto Original';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
47 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
48 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
49 Linha em branco usada para separar blocos e melhorar a leitura.
50 if(!is_uploaded_file($_FILES['foto_original']['tmp_name'])){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
51 echo 'Arquivo da Foto Original inválido';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
52 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
53 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
54 Linha em branco usada para separar blocos e melhorar a leitura.
55 $foto_original = $_FILES['foto_original']['name'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
56 $extensao = strtolower(pathinfo($foto_original, PATHINFO_EXTENSION));Define a variável `$extensao`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
57 Linha em branco usada para separar blocos e melhorar a leitura.
58 if($extensao != 'png' && $extensao != 'jpg' && $extensao != 'jpeg' && $extensao != 'webp'){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
59 echo 'Formato da Foto Original não permitido';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
60 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
61 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
62 Linha em branco usada para separar blocos e melhorar a leitura.
63 $nome_img_original = md5(uniqid()) . "." . $extensao;Define a variável `$nome_img_original`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
64 $caminho = $pasta_upload . $nome_img_original;Define a variável `$caminho`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
65 Linha em branco usada para separar blocos e melhorar a leitura.
66 $upload_original = move_uploaded_file($_FILES['foto_original']['tmp_name'], $caminho);Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
67 Linha em branco usada para separar blocos e melhorar a leitura.
68 if($upload_original == false){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
69 echo 'Erro ao salvar a Foto Original';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
70 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
71 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
72 Linha em branco usada para separar blocos e melhorar a leitura.
73 if(!file_exists($caminho)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
74 echo 'Arquivo da Foto Original não foi gravado';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
75 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
76 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
77 Linha em branco usada para separar blocos e melhorar a leitura.
78 if($foto_original_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
79 $caminho_antigo = $pasta_upload . $foto_original_atual;Define a variável `$caminho_antigo`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
80 if(file_exists($caminho_antigo)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
81 @unlink($caminho_antigo);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
82 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
83 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
84}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
85 Linha em branco usada para separar blocos e melhorar a leitura.
86if(@$_FILES['imagem_simulada']['name'] != ''){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
87 Linha em branco usada para separar blocos e melhorar a leitura.
88 if($_FILES['imagem_simulada']['error'] != 0){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
89 echo 'Erro ao enviar a Imagem Simulada';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
90 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
91 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
92 Linha em branco usada para separar blocos e melhorar a leitura.
93 if(!is_uploaded_file($_FILES['imagem_simulada']['tmp_name'])){Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação.
94 echo 'Arquivo da Imagem Simulada inválido';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
95 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
96 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
97 Linha em branco usada para separar blocos e melhorar a leitura.
98 $imagem_simulada = $_FILES['imagem_simulada']['name'];Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
99 $extensao2 = strtolower(pathinfo($imagem_simulada, PATHINFO_EXTENSION));Define a variável `$extensao2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
100 Linha em branco usada para separar blocos e melhorar a leitura.
101 if($extensao2 != 'png' && $extensao2 != 'jpg' && $extensao2 != 'jpeg' && $extensao2 != 'webp'){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
102 echo 'Formato da Imagem Simulada não permitido';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
103 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
104 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
105 Linha em branco usada para separar blocos e melhorar a leitura.
106 $nome_img_simulada = md5(uniqid()) . "." . $extensao2;Define a variável `$nome_img_simulada`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
107 $caminho2 = $pasta_upload . $nome_img_simulada;Define a variável `$caminho2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
108 Linha em branco usada para separar blocos e melhorar a leitura.
109 $upload_simulada = move_uploaded_file($_FILES['imagem_simulada']['tmp_name'], $caminho2);Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
110 Linha em branco usada para separar blocos e melhorar a leitura.
111 if($upload_simulada == false){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
112 echo 'Erro ao salvar a Imagem Simulada';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
113 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
114 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
115 Linha em branco usada para separar blocos e melhorar a leitura.
116 if(!file_exists($caminho2)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
117 echo 'Arquivo da Imagem Simulada não foi gravado';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
118 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
119 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
120 Linha em branco usada para separar blocos e melhorar a leitura.
121 if($imagem_simulada_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
122 $caminho_antigo2 = $pasta_upload . $imagem_simulada_atual;Define a variável `$caminho_antigo2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
123 if(file_exists($caminho_antigo2)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
124 @unlink($caminho_antigo2);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
125 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
126 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
127}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
128 Linha em branco usada para separar blocos e melhorar a leitura.
129$query = $pdo->prepare("SELECT * FROM $tabela WHERE cliente = :cliente AND id_protese = :id_protese AND data_simulacao = :data_simulacao");Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
130$query->bindValue(":cliente", $cliente);Associa um valor PHP a um parâmetro nomeado da query preparada.
131$query->bindValue(":id_protese", $id_protese);Associa um valor PHP a um parâmetro nomeado da query preparada.
132$query->bindValue(":data_simulacao", $data_simulacao);Associa um valor PHP a um parâmetro nomeado da query preparada.
133$query->execute();Executa a query preparada no banco de dados.
134$res = $query->fetchAll(PDO::FETCH_ASSOC);Lê o resultado retornado pelo banco e o converte para uma estrutura PHP que o restante do arquivo consegue consumir.
135 Linha em branco usada para separar blocos e melhorar a leitura.
136if(@count($res) > 0 and $id != $res[0]['id']){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
137 echo 'Registro já Cadastrado, escolha outro!!';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
138 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
139}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
140 Linha em branco usada para separar blocos e melhorar a leitura.
141if($id == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
142 $query = $pdo->prepare("INSERT INTO $tabela SET Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
143 cliente = :cliente, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
144 id_protese = :id_protese, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
145 foto_original = :foto_original, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
146 imagem_simulada = :imagem_simulada, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
147 observacoes = :observacoes, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
148 data_simulacao = :data_simulacao");Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
149}else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
150 $query = $pdo->prepare("UPDATE $tabela SET Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
151 cliente = :cliente, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
152 id_protese = :id_protese, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
153 foto_original = :foto_original, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
154 imagem_simulada = :imagem_simulada, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
155 observacoes = :observacoes, Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
156 data_simulacao = :data_simulacao Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
157 WHERE id = :id");Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
158 $query->bindValue(":id", $id);Associa um valor PHP a um parâmetro nomeado da query preparada.
159}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
160 Linha em branco usada para separar blocos e melhorar a leitura.
161$query->bindValue(":cliente", $cliente);Associa um valor PHP a um parâmetro nomeado da query preparada.
162$query->bindValue(":id_protese", $id_protese);Associa um valor PHP a um parâmetro nomeado da query preparada.
163$query->bindValue(":foto_original", $nome_img_original);Associa um valor PHP a um parâmetro nomeado da query preparada.
164$query->bindValue(":imagem_simulada", $nome_img_simulada);Associa um valor PHP a um parâmetro nomeado da query preparada.
165$query->bindValue(":observacoes", $observacoes);Associa um valor PHP a um parâmetro nomeado da query preparada.
166$query->bindValue(":data_simulacao", $data_simulacao);Associa um valor PHP a um parâmetro nomeado da query preparada.
167$query->execute();Executa a query preparada no banco de dados.
168 Linha em branco usada para separar blocos e melhorar a leitura.
169echo 'Salvo com Sucesso';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
170?>Fecha o bloco PHP atual para voltar à saída HTML.

Navegação entre arquivos do grupo