Php 1452-无法添加或更新子行

Php 1452-无法添加或更新子行,php,mysql,sql,mariadb,Php,Mysql,Sql,Mariadb,我的数据库(使用MariaDB)插入新行时出现问题 我有以下错误 无法添加或更新子行:外键约束失败 (DbName\u精品店command,约束bdc\u由uuu fk管理FOREIGN 密钥(bdc\u由用户管理\u id)引用usriateur (使用用户id)插入命令(留置权设计、留置权bdc、, 结束设计,bdc设计状态,由用户id创建的设计, bdc由用户管理(企业id) 我的控制器上有以下代码: $unknow = NULL; $end_date = date('d/m/Y', st

我的数据库(使用MariaDB)插入新行时出现问题

我有以下错误

无法添加或更新子行:外键约束失败 (
DbName\u精品店
command
,约束bdc\u由uuu fk管理FOREIGN 密钥(
bdc\u由用户管理\u id
)引用
usriateur
使用用户id
)插入命令(留置权设计、留置权bdc、, 结束设计,bdc设计状态,由用户id创建的设计, bdc由用户管理(企业id)

我的控制器上有以下代码:

$unknow = NULL;
$end_date = date('d/m/Y', strtotime("+1 month"));
$user = checkConnected($bdd);
Commande::create($bdd, $new_full_modele_devis_path, $new_full_modele_devis_path, $end_date, 0, $user->getId(), $user->getId(), $entreprise->getId());
$unknow是我稍后在另一个控制器中使用的值

我的表格“Commande”构建如下:

create table dBName.Commande
(
  commande_id              int                  not null
    primary key,
  lien_devis               varchar(255)         null,
  lien_bdc                 varchar(255)         null,
  end_devis                datetime             null,
  bdc_status               int                  null,
  devis_created_by_user_id mediumint unsigned   null,
  bdc_managed_by_user_id   mediumint unsigned   null,
  entreprise_id            smallint(5) unsigned null,
  constraint bdc_managed_by___fk
    foreign key (bdc_managed_by_user_id) references dBName.utilisateur (utilisateur_id),
  constraint devis_created_by___fk
    foreign key (devis_created_by_user_id) references dBName.utilisateur (utilisateur_id),
  constraint entreprise___fk
    foreign key (entreprise_id) references dBName.entreprise (entreprise_id)
);
稍后我将创建用户表:

create table dBName.utilisateur
(
  utilisateur_id        mediumint unsigned auto_increment
    primary key,
  utilisateur_password  varchar(255) null,
  utilisateur_nom       varchar(50)  null,
  utilisateur_prenom    varchar(50)  null,
  utilisateur_email     varchar(255) null,
  utilisateur_telephone varchar(10)  null,
  utilisateur_fax       varchar(25)  null,
  is_active             tinyint(1)   null
)
  charset = utf8mb4;
和企业:

create table dBName.entreprise
(
  entreprise_id                smallint(5) unsigned auto_increment
    primary key,
  entreprise_nom               varchar(100)       null,
  entreprise_siret             char(14)           null,
  entreprise_telephone         char(10)           null,
  entreprise_salesforce_number varchar(100)       null,
  entreprise_compte_client     varchar(100)       null,
  entreprise_raison_sociale    varchar(100)       null,
  entreprise_APE               varchar(25)        null,
  entreprise_image_link        varchar(255)       null,
  adresse_id                   mediumint unsigned null,
  constraint FK_entreprise_adresse_id
    foreign key (adresse_id) references dBName.adresse (adresse_id)
)
  charset = utf8mb4;

我不明白我为什么要忍受这个错误。。。一点点帮助对我会有很大帮助。。谢谢。

command
表中,用户id管理的bdc\u列通过外键引用映射到
用户id
表的
用户id

这意味着,每当您在
command
表中插入一行时,由用户id管理的相应的
bdc\u必须是
用户id
表中的
用户id
之一。如果没有,您将得到上述错误


这称为外键约束,您可以看一看描述其工作原理的示例。

Hi!非常感谢你的帮助;我意识到,当我说$user-getid()时,返回的是我的“Client”表和“usilisateur”表,我需要检查原因。