我有这个MySQL代码尝试提交帖子到论坛的错误。外键MySQL错误与帖子
的错误是:
Cannot add or update a child row: a foreign key constraint fails(`[My Database Name]`.`posts`, CONSTRAINT `posts_ibfk_2` FOREIGN KEY (`post_by`) REFERENCES `users` (`id`) ON UPDATE CASCADE)
的代码是:
$username = $_SESSION['username'];
$subid = mysqli_insert_id($con);
$usablesubid = mysqli_real_escape_string($con,$subid);
$postcontent = mysqli_real_escape_string($con,$_POST['post_content']);
$usableusername = mysqli_real_escape_string($con,$username);
$sql = "INSERT INTO `posts`(post_id, post_content, post_date, post_sub, post_by)VALUES(NULL, '$postcontent', NOW(), '$usablesubid', '$usableusername')";
$result = mysqli_query($con,$sql);
if(!$result)
{
echo 'An error occured while inserting your post. Please try again later.' . mysqli_error($con);
什么'$ username' /'$ _SESSION ['username']'包含?我想这不是一个现有的用户ID。 – jeroen
它提取用户用户名本身,它存储在登录页面中的会话变量用户名中;我知道这是有效的,因为我用它来列出谁在我的标题中登录。 –
也许,但用户标识不一定与用户名相同。对于你的外键你需要'users.id',我会认为这是一个整数,而不是你在页面顶部显示的用户名。 – jeroen