6
I am unable to rescue the ID from the last record inserted in my BD, it is coming as Zero, the inclusion is working and at the time of doing an update the script fails.
I’ve tried with mysql_insert_id()
and mysqli_insert_id()
What I did was this:
$sql = "INSERT INTO WFDocContratacao ( Unidade, Cargo, NumeroVagas, MotivoContratacao, Departamento, TipoVaga, HorarioTrabalho, Jornada, DataAdmissao, ContratoExperiencia, SalarioContratual, Codigo1, SalarioPosExperiencia, Codigo2, Atividade, Aproveitamento, NomeIndicado, Escolaridade, CNH, ConhecimentoTI, EstadoCivil, Idade, Sexo, Experiencia, TempoExperiencia, Caracteristicas, OutrosRequisitos) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; // Preparar os dados: s = string / i = inteiro / d = decimal / b = blob if($stmt = $conn->prepare($sql) ){ $stmt->bind_param( "ssssssssssdsdssssssssssssss", $_POST["UnidadeRequisitante"], $_POST["Cargo"], $_POST["NumeroVagas"], $_POST["Motivo"], $_POST["Departamento"], $_POST["TipoVaga"], $_POST["HorarioTrabalho"], $_POST["Jornada"], // Definir como STRING na lista acima $Data, $_POST["ContratoExperiencia"], $fSalarioContrato, $_POST["Codigo1"], $fSalarioPosExperiencia, $_POST["Codigo2"], $_POST["Atividade"], $_POST["AproveitamentoInterno"], $_POST["NomeFuncionarioIndicado"], $_POST["Escolaridade"], $_POST["CNH"], $_POST["Informatica"], $_POST["EstadoCivil"], $_POST["Idade"], $_POST["Sexo"], $_POST["Experiencia"], $_POST["TempoExperiencia"], $_POST["Caracteristicas"], $_POST["OutrosRequisitos"] ); $IdDoctoCont = mysql_insert_id(); //executando a query if($stmt->execute()){ $aretorno["msg"] = "Registro inserido com sucesso."; // $stmt->close(); }else{ $aretorno["msg"] = "Ocorreu um erro na inclusão dos dados: " . $stmt->error . ". Verifique."; $aretorno["status"] = "ERRO"; } $sqlUp = "UPDATE WFTarefa SET IdDoctoCont = ? WHERE IdTarefa = ?"; // Preparar os dados: s = string / i = inteiro / d = decimal / b = blob if($stmt = $conn->prepare($sqlUp) ){ $stmt->bind_param( "ii", $IdTarefa, $IdDoctoCont ); } }else{ $aretorno["msg"] = "Ocorreu um erro na preparação dos dados: " . $stmt->error . ". Verifique."; $aretorno["status"] = "ERRO"; } //close the database $conn->close();
Hi @rray, thanks for the tip, now I can get the value of the last ID but I can’t do Update.
– adventistapr
@adventistapr, in your $idTarefa code does not seem set. Call again $stmt->run();
– rray
Thanks @rray for the excellent tip and help, the recommended links were extremely useful.
– adventistapr