我有這個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