3
I am sending six fields of a form to insert in my Mysql but only the first three are going correctly, I need to insert the first three and in sequence the other three, but I have this difficulty in understanding how to do.
The variables are these?
$IdCandidato = $_SESSION['IdCandidato']; $IdArea1 = $_POST['Area1']; $IdCargo1 = $_POST['Cargo1']; $Experiencia1 = $_POST['Experiencia1']; $Area2 = $_POST['Area2']; $Cargo2 = $_POST['Cargo2']; $Experiencia2 = $_POST['Experiencia2']; $DataHoraAtualizacao = date('Y-m-d H:i:s');
The variables IdCandidato
and DataHoraAtualizacao
I’m recovering at the time of the recording attempt.
I’ll put an image to explain better, the form is this:
The table structure is like this:
CREATE TABLE `crrAreaExpectativa` ( `IdAreaExpectativa` INT(10) NOT NULL AUTO_INCREMENT COMMENT 'Código da area expectativa', `IdCandidato` INT(10) NOT NULL COMMENT 'Código do candidato', `Opcao` TINYINT(1) NOT NULL COMMENT 'Opção: 1 ou 2', `IdArea` INT(10) NOT NULL COMMENT 'Código da área', `IdCargo` INT(10) NOT NULL COMMENT 'Código do cargo', `DataHoraAtualizacao` DATETIME NOT NULL COMMENT 'Data/Hora da atualização', PRIMARY KEY (`IdAreaExpectativa`, `IdCandidato`), INDEX `IDXOpcao` (`Opcao`), INDEX `IDXIdArea` (`IdArea`), INDEX `IDXIdCargo` (`IdCargo`), INDEX `FK_AreaExpectativa_Candidato` (`IdCandidato`), CONSTRAINT `FK_AreaExpectativa_Candidato` FOREIGN KEY (`IdCandidato`) REFERENCES `crrCandidato` (`IdCandidato`) ON UPDATE NO ACTION ON DELETE CASCADE ) COMMENT='Área e cargo onde o candidato deseja trabalhar' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=14 ;
What I’m trying to do is this:
try { // INICIALIZA A TRANSAÇÃO $conexao->beginTransaction(); try { // INSERT 3 PRIMEIROS CAMPOS $sql1 = 'INSERT INTO `crrAreaExpectativa` (`IdCandidato`, `Opcao`, `IdArea`, `IdCargo`, `DataHoraAtualizacao`) VALUES (?,?,?,?,?)'; $stm = $conexao->prepare($sql1); $stm->bindValue(1, $IdCandidato, PDO::PARAM_INT); $stm->bindValue(2, $Experiencia1, PDO::PARAM_INT); $stm->bindValue(3, $IdArea1, PDO::PARAM_INT); $stm->bindValue(4, $IdCargo1, PDO::PARAM_INT); $stm->bindValue(5, $DataHoraAtualizacao, PDO::PARAM_STR); $retorno = $stm->execute(); // INSERT 3 ÚLTIMOS CAMPOS $sql2 = 'INSERT INTO `crrAreaExpectativa` (`IdCandidato`, `Opcao`, `IdArea`, `IdCargo`, `DataHoraAtualizacao`) VALUES (?,?,?,?,?)'; $stm = $conexao->prepare($sql2); $stm->bindValue(1, $IdCandidato, PDO::PARAM_INT); $stm->bindValue(2, $Experiencia2, PDO::PARAM_INT); $stm->bindValue(3, $IdArea2, PDO::PARAM_INT); $stm->bindValue(4, $IdCargo2, PDO::PARAM_INT); $stm->bindValue(5, $DataHoraAtualizacao, PDO::PARAM_STR); $retorno = $stm->execute(); $conexao->commit(); } catch (PDOException $erro) { // DESFAZ TRANSAÇÃO ATUAL $conexao->rollBack(); $erro = $erro->getMessage(); $retorno = array('codigo' => '0', 'mensagem' => ' Erro ao inserir o registro. Tente novamente [2]. ::$erro'); $conexao = null; // RETORNO DE MENSAGEM echo json_encode($retorno); exit(); } } catch (Exception $e) { // DESFAZ TRANSAÇÃO ATUAL $conexao->rollBack(); $retorno = array('codigo' => '0', 'mensagem' => ' Ocorreu um erro na gravação, tente novamente [5]. ::$erro'); $conexao = null; // RETORNO DE MENSAGEM echo json_encode($retorno); exit(); } $retorno = array('codigo' => '1', 'mensagem' => ' Registro inserido com sucesso'); // FECHA CONEXÃO $conexao = null; // RETORNO DE MENSAGEM echo json_encode($retorno); exit();
Damn the one about the drug test really got me, thanks @Talesperes for the great help and look sharp, thanks.
– adventistapr