include_once 'acesso_bd/conexao_bd.php';
class PropriedadeDAO {
function inserirPropriedadeBD($propriedade) {
$nome = $propriedade->getNome();
$endereco = $propriedade->getEndereco();
$telefone = $propriedade->getTelefone();
$conexaobd = new ConexaoBD;
$conexao = $conexaobd->conectarAoBD();
$sql = "INSERT INTO propriedade (nome, endereco, telefone) VALUES ('$nome', '$endereco', '$telefone')";
if (!mysqli_query($conexao, $sql)) {
echo "Erro: " . $sql . "<br>" . mysqli_error($conexao);
}
}
The above code refers to the registration of a property, where its ID is AUTO_INCREMENT
.
include_once 'acesso_bd/conexao_bd.php';
class TalhaoDAO {
function inserirTalhaoBD($talhao) {
$nome = $talhao->getNome();
$conexaobd = new ConexaoBD;
$conexao = $conexaobd->conectarAoBD();
$sql = "INSERT INTO talhao (nome, id_propriedade) VALUES ('$nome', LAST_INSERT_ID())";
if (!mysqli_query($conexao, $sql)) {
echo "Erro: " . $sql . "<br>" . mysqli_error($conexao);
}
}
This is the Talhao registration code, which necessarily needs the foreign key "id_propriedade"
to be identified. I used LAST_INSERT_ID
, the problem is that I'm returning the following error when trying to register Talhao:
Error: INSERT INTO talhao (name, property_id) VALUES ('aaa', LAST_INSERT_ID ()) Can not add or update child row: a foreign key constraint fails (
teste
,talhao
, CONSTRAINTid_propriedade_fk
FOREIGN KEY (id_propriedade
) REFERENCESpropriedade
(id_propriedade
) ON DELETE ON ACTION ON UPDATE NO ACTION )
CREATE TABLE IF NOT EXISTS 'propriedade' (
'id_propriedade' int(11) NOT NULL AUTO_INCREMENT,
'nome' varchar(20) NOT NULL,
'endereco' varchar(20) NOT NULL,
'telefone' varchar(20) NOT NULL,
PRIMARY KEY ('id_propriedade')
) ENGINE=InnoDB ;
CREATE TABLE IF NOT EXISTS 'talhao' (
'id_parcela' int(11) NOT NULL AUTO_INCREMENT,
'nome' varchar(20) NOT NULL,
'id_propriedade' int(11) NOT NULL,
PRIMARY KEY ('id_parcela'),
KEY 'id_propriedade' ('id_propriedade'),
KEY 'id_propriedade_fk' ('id_propriedade')
) ENGINE=InnoDB ;