Mysql
 sql >> Base de données >  >> RDS >> Mysql

La requête de mise à jour MySQL avec une instruction préparée donne une erreur

Cela a été dit dans les commentaires, vous avez manqué les espaces réservés.

Donc, change :

$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=?";

C'est aussi simple que cela.

Le manuel contient la syntaxe appropriée :

N'oubliez pas de passer les arguments dans le bon ordre . Ils doivent être passés dans le même ordre qu'ils sont utilisés dans la requête (vous avez échangé l'image avec la date de publication), donc cela devrait être :

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