foreign key php database

0
create table cliente (

    id_cliente integer auto_increment,
    nome varchar (100),

    primary key (id_cliente)

);

create table produto (

    id_produto integer auto_increment,
    id_cliente integer,
    nome_produto varchar (100),
    referencia varchar (100),
    valor double (2,2),
    index id (id_cliente),

    primary key (id_produto),
    CONSTRAINT produto_ibfk_1 FOREIGN KEY (id_cliente) REFERENCES cliente (id_cliente) ON UPDATE CASCADE

);

I have these two tables that both are relating. When I try to insert data into the second table the following php error occurs:

  

Can not add or update child row: a foreign key constraint fails   ( sistema . produto , CONSTRAINT produto_ibfk_1 FOREIGN KEY   ( id_cliente ) REFERENCES cliente ( id_cliente ) ON UPDATE CASCADE) '

Note: I have data entered in the client table.

$query = "INSERT INTO " . $this -> name_entity . "("; $sep = ""; foreach ($fields as $field) { $query .= $sep . $field; $sep = ", "; } $query .= " ) VALUES ( "; $sep = ""; foreach ($fields as $field) { $query .= $sep . ":" . $field; $sep = ", "; } $query .= " ); ";

    $connection = ConnectionDB::openConnection();
    $result = $connection -> prepare($query);
    foreach ($fields as $field) {
        $value = $atributos[$field];
        $result -> bindValue(":" . $field, $value);
    }
    $result -> execute();
    $this -> reportarErros($result);
    $ultimoId = $connection -> lastInsertId();
    ConnectionDB::closeConnection();
    return $ultimoId;
    
asked by anonymous 27.08.2015 / 15:40

1 answer

0
    $query = "INSERT INTO " . $this -> name_entity . "(";
    $sep = "";
    foreach ($fields as $field) {
        $query .= $sep . $field;
        $sep = ", ";
    }
    $query .= " ) VALUES ( ";
    $sep = "";
    foreach ($fields as $field) {
        $query .= $sep . ":" . $field;
        $sep = ", ";
    }
    $query .= " ); ";

    $connection = ConnectionDB::openConnection();
    $result = $connection -> prepare($query);
    foreach ($fields as $field) {
        $value = $atributos[$field];
        $result -> bindValue(":" . $field, $value);
    }
    $result -> execute();
    $this -> reportarErros($result);
    $ultimoId = $connection -> lastInsertId();
    ConnectionDB::closeConnection();
    return $ultimoId;
    
27.08.2015 / 16:12