Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法添加或更新子行错误_Php_Mysql_Database Design - Fatal编程技术网

Php 无法添加或更新子行错误

Php 无法添加或更新子行错误,php,mysql,database-design,Php,Mysql,Database Design,当我试图回复论坛系统上的帖子时,我不断收到此错误: Cannot add or update a child row: a foreign key constraint fails ('forum'.'posts', CONSTRAINT 'posts_ibfk_2' FOREIGN KEY ('post_by') REFERENCES 'users' ('user_id') ON UPDATE CASCADE). 我知道这个问题可能已经得到了回答,但对于我的DB模式,我想获得更多关于我遗漏

当我试图回复论坛系统上的帖子时,我不断收到此错误:

Cannot add or update a child row: a foreign key constraint fails ('forum'.'posts', CONSTRAINT 'posts_ibfk_2' FOREIGN KEY ('post_by') REFERENCES 'users' ('user_id') 
ON UPDATE CASCADE).
我知道这个问题可能已经得到了回答,但对于我的DB模式,我想获得更多关于我遗漏了什么的信息。下面是我的用户和POST表的DB模式:

用户表:

注意:用户名是我的主键

员额表:

注意:post_by是引用用户表中用户id的FK


我非常确定我的模式不正确或有问题,我们将非常感谢您的帮助。

为什么要在更新时级联?当你想回复一篇文章时,你的SQL语句是什么样子的?下面是回复一篇文章时的SQL语句:$SQL=INSERT INTO postspost_内容、post_日期、post_主题、post_值。mysqli_real_escape_字符串$dbc、$post['reply_content'],现在,'.mysqli_real_escape_字符串$dbc、$GET['id',$SESSION['user_id'.];我只能猜测:可能会话包含的值不在users表中。尝试使用硬编码的用户id进行测试。如果没有发生错误,则应检查会话值。因为您希望整数作为值,所以应该键入cast。顺便说一句:post_主题不是一个整数列吗?Thx我会试试看。因为正如您所说,如果会话为null或包含一个不在users表中的值,那么就会出现问题。我将对其进行硬编码,并尝试在页面上显示$\u会话[user\u id'],以查看登录后它是否真的包含某些内容。谢谢。谢谢你的建议,它解决了我的问题。我发现$\u会话['user\u id']有问题。我测试了它,以确保登录后它包含预期值。再次感谢。
user_id int(8) 
user_name varchar(30)
user_pass varchar(255)   
user_email varchar(255)  
user_date datetime  
user_level int(8)   
post_id int(8)           
post_content text                
post_date datetime           
post_topic int(8) 
post_by  int(8)