sql >> Base de Datos >  >> RDS >> Mysql

La consulta de actualización de Mysql con declaración preparada está dando error

Se ha dicho en los comentarios que te perdiste los marcadores de posición.

Entonces, cambia:

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

a:

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

Es tan simple como eso.

El manual contiene la sintaxis adecuada:

No olvides pasar los argumentos en el orden correcto . Deben pasarse en el mismo orden en que se usan en la consulta (usted intercambió la imagen con la fecha de publicación), por lo que debería ser:

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