gpt4 book ai didi

php - 手动插入子表时出现foreign key constraints fails错误如何解决?

转载 作者:行者123 更新时间:2023-11-30 22:41:36 27 4
gpt4 key购买 nike

我正在使用 MySQLi 连接到我的数据库,我的问题是我想在数据库中插入,但出现此错误:

Error: Cannot add or update a child row: a foreign key constraint fails (edi_tracker_revised.edi_transaction, CONSTRAINT edi_transaction_ibfk_1 FOREIGN KEY (edi_doc_type_id) REFERENCES edi_doc_type (edi_doc_type_id) ON DELETE CASCADE ON UPDATE CASCADE)

这是我的插入代码。

 if ($doc_type == '812') {

$edi_doc_type_id = "SELECT edi_doc_type_id FROM `edi_doc_type` WHERE doc_type = 812 " ;

$sql = "INSERT INTO edi_transaction (`sender_id`,`receiver_id`,`isa_number`,`transaction_date`,`gs_number`,`edi_doc_type_id`,`ref_number`,`file_name`,`file_path`,`creation_date`)
VALUES ('$sender_id','$receiver_id','$isa_number','$transaction_date','$gs_number','$edi_doc_type_id','$ref_number','$file_name','$file_path',NOW()) " ;
$ref_numberArray = explode(',' ,$ref_number); // the ref_number contains the invoice numbers


//Checking query if it is successful
if ($conn->query($sql) === false){
trigger_error('Wrong SQL: ' . $sql . 'Error: ' . $conn->error , E_USER_ERROR);
}else {
echo "Successful ! Data is inserted in database ^__^" ;

}
}

当我手动说时,我使用 phpmyadmin 插入,现在如果我在 edi_transaction 之前先手动填充我的 edi_doc_type,我该如何修复它?我的 edi_transaction 表中需要 edi_doc_type_id。有人可以帮助我吗?

最佳答案

$edi_doc_type_id = "SELECT edi_doc_type_id FROM `edi_doc_type` WHERE doc_type = 812 "; 没有执行查询,它只是一个字符串赋值。由于 SELECT edi_doc_type_id FROM `edi_doc_type` WHERE doc_type = 812 不是有效 ID,因此第二个查询失败。

在第二个查询中使用它之前,您应该执行 SELECT 查询并读出 edi_doc_type_id。

还值得研究准备好的语句或转义值以防止 SQL 注入(inject)攻击。

关于php - 手动插入子表时出现foreign key constraints fails错误如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com