Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Aktualisierungsabfrage mit vorbereiteter Anweisung gibt einen Fehler aus

In den Kommentaren wurde gesagt, dass Sie die Platzhalter verpasst haben.

Ändern Sie also:

$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'";

zu:

$sql = 
    "UPDATE blog_posts 
        SET post_title=?, 
        content=?, 
        author_name=?, 
        category=?, 
        post_date=?, 
        image=? 
        WHERE post_id=?";

So einfach ist das.

Das Handbuch enthält die richtige Syntax:

Vergessen Sie nicht, die Argumente in der richtigen Reihenfolge zu übergeben . Sie sollten in derselben Reihenfolge übergeben werden, in der sie in der Abfrage verwendet werden (Sie haben das Bild mit dem Veröffentlichungsdatum ausgetauscht), also sollte es sein:

$stmt->bind_param("ssssisi", $post_title, $content, $author_name, $category, $post_date, $image_name, $id);