上传照片后,我想将文件的名称和位置传递到名为 pics
的表(该表具有 pic_id
主键属性,文件名
和文件路径
)。我还想将上传的 pic_id
存储到 users 表中,因此基本上 pics
表中的 pic_id
引用了 pic_id
在用户表中。但是我得到错误:无法添加或更新子行:外键约束失败(db . pics,CONSTRAINT pics_ibfk_1 FOREIGN KEY (pic_id) REFERENCES users (pic_id) ON DELETE NO ACTION ON UPDATE NO ACTION)
.
PHP 和 SQL 代码:
$max = "
SELECT pic_id
FROM profile_pics
WHERE pic_id = (
SELECT MAX(pic_id)
FROM profile_pics
)
";
$sql_update = "
UPDATE users
SET pic_id = '$max'
WHERE username = '$username'
";
$sql_insert = "
INSERT INTO profile_pics (pic_id, filename, filepath)
VALUES ('' ,'$fileName', '$resized_file')
";
$results_insert = $conn->query($sql_insert);
if (!$results_insert) {
exit ("Error: " . mysqli_error($conn));
}
用户与图片关系表 1
最佳答案
这个:
$max = "SELECT pic_id FROM profile_pics WHERE pic_id = (SELECT MAX(pic_id) FROM profile_pics)";
实际上并没有在变量$max
中给出结果。您必须执行查询并读取结果。
你也可以使用
SELECT MAX(pic_id) AS pic_id FROM profile_pics
关于php - 无法添加或更新子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925300/