टिप्पणियों में कहा गया है, आप प्लेसहोल्डर्स से चूक गए।
तो, बदलें:
$sql =
"UPDATE blog_posts
SET post_title='$post_title',
content='$content',
author_name='$author_name',
category='$category',
post_date='$post_date',
image='$image_name'
WHERE post_id='$id'";
करने के लिए:
$sql =
"UPDATE blog_posts
SET post_title=?,
content=?,
author_name=?,
category=?,
post_date=?,
image=?
WHERE post_id=?";
यह उतना ही सरल है।
मैनुअल में उचित सिंटैक्स होता है:
तर्कों को सही क्रम में पारित करना न भूलें . उन्हें उसी क्रम में पारित किया जाना चाहिए जैसे वे क्वेरी में उपयोग किए जाते हैं (आपने पोस्ट की तारीख के साथ छवि को बदल दिया है), इसलिए यह होना चाहिए:
$stmt->bind_param("ssssisi", $post_title, $content, $author_name, $category, $post_date, $image_name, $id);