php - 无法添加或更新子行

标签 php html mysql sql

上传照片后,我想将文件的名称和位置传递到名为 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/

相关文章:

PHP 检查是否不为空以及另一个 GET 的值

php - 如何将 Windows 批处理脚本变量传递给管道命令

javascript - 将 json 数据渲染到 dhtmlx 调度程序

php - 在 PHP 中用空格连接字符串的最佳方法

php - 使用 for() 循环创建唯一的 PHP 变量

html - 为什么我的图像尺寸过大?

html - html中<p>标签的使用

MySQL 选择日期介于

如果满足计数条件则 MySQL 更新

mysql - 如何只将一个表中的一列插入到多列表中?