I am not able to retrieve the ID of the last record inserted in my DB, it is coming as Zero, the inclusion is working and at the moment of making an update the script fails.
I have 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();