我的代码是:
private function get_parameters_to_array()
{
$data = array(
'datahora' => $this->input->post('datahora'),
'valor' => $this->input->post('valor'),
'idProduto' => $this->input->post('idProduto'),
'idFuncionario' => $this->input->post('idFuncionario'),
'idMesa' => $this->input->post('idMesa')
);
return $data;
}
我需要将3个ID值转换为Int,该怎么做?我得到的错误是这个:
错误编号:1452
无法添加或更新子行:外键约束失败
(
tucunaredb
。pedido
,CONSTRAINT fk_Pedido_Funcionario1
外国键(
idFuncionario
)参考funcionario
(id
)删除号采取行动(不采取行动)
插入
Pedido
(datahora
,valor
,idProduto
,idFuncionario
,idMesa
,ativo
)值('2016-02-24 23:14:16','6.50','8','5','2',1)
最佳答案
这很简单,而且也正是错误所在:这是您要插入列idFuncionario
中具有funcionario.id
外键的列中的值错误。您可能在父表id
中没有任何funcionario
5的记录。
您必须先创建这样的记录,然后才能从其他表中引用它。
foreign keys的重点是保持the referential integrity,即数据一致性。
您在列fk_Pedido_Funcionario1
上具有外键Pedido.idFuncionario
,该外键引用了列funcionario.id
。这意味着Pedido.idFuncionario
中的值不能与funcionario.id
中的值不同,并且数据库正在检查该值。当您尝试插入其他值时,它会引发错误。
唯一允许的其他值是NULL
,但仅在case列中可以包含该值(未使用NOT NULL
定义)。