🔒 Closed Ayaw ako makapag insert

Status
Not open for further replies.

loktoy

Established
ito error na lumalabas
Fatal error: Uncaught mysqli_sql_exception: Cannot add or update a child row: a foreign key constraint fails (test.comments, CONSTRAINT fk_comments_post_id FOREIGN KEY (post_id) REFERENCES posts (id)) in C:\xampp\htdocs\comments-and-replies-php-mysql\index.php:15 Stack trace: #0 C:\xampp\htdocs\comments-and-replies-php-mysql\index.php(15): mysqli_query(Object(mysqli), 'INSERT INTO com...') #1 {main} thrown in C:\xampp\htdocs\comments-and-replies-php-mysql\index.php on line 15

ito code ko

$conn = mysqli_connect("localhost", "root","","test");
if (isset($_POST["post_comment"]))
{
$name = mysqli_real_escape_string($conn, $_POST["name"]);
$email = mysqli_real_escape_string($conn, $_POST["email"]);
$comment = mysqli_real_escape_string($conn, $_POST["comment"]);
$post_id = mysqli_real_escape_string($conn, $_POST["post_id"]);
$reply_of = 0;
mysqli_query($conn, "INSERT INTO comments(name, email, comment, post_id, created_at, reply_of) VALUES ('" . $name . "', '" . $email . "', '" . $comment . "', '" . $post_id . "', NOW(), '" . $reply_of . "')");
echo "<p>Comment has been posted.</p>";
}
 
The error message you're seeing indicates that there is a foreign key constraint violation when trying to insert a new row into the comments table. Specifically, the foreign key constraint fk_comments_post_id is being violated.

This constraint is defined to ensure that the post_id value being inserted into the comments table is a valid reference to an existing row in the posts table.

To resolve this issue, you need to make sure that the post_id value you're trying to insert into the comments table exists in the posts table.

Here are a few possible reasons for the error:

1. The post_id value you're trying to insert does not exist in the posts table. You can check if the post_id value is correct and corresponds to an existing row in the posts table.

2. The posts table does not have the id column defined as the primary key. The foreign key constraint requires that the referenced column (id in this case) is the primary key of the referenced table (posts). Make sure the id column in the posts table is defined as the primary key.

3. There might be some records in the comments table that have invalid post_id values, which violate the foreign key constraint. You can check the existing records in the comments table and make sure their post_id values are valid.

It's also worth mentioning that using mysqli_real_escape_string is not sufficient to prevent SQL injection. It's recommended to use prepared statements or parameterized queries to ensure the security of your application.

If you're still having trouble, please provide more information about your database schema and the values you're trying to insert.
 
Status
Not open for further replies.

About this Thread

  • 2
    Replies
  • 323
    Views
  • 2
    Participants
Last reply from:
vhin le

Online now

Members online
859
Guests online
2,614
Total visitors
3,473

Forum statistics

Threads
2,320,151
Posts
29,204,562
Members
1,180,443
Latest member
dragonball
Back
Top