sql >> Databasteknik >  >> RDS >> Mysql

Mysql-uppdateringsfråga med förberedd sats ger ett fel

Det har sagts i kommentarer, du missade platshållarna.

Så, ändra:

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

till:

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

Så enkelt är det.

Manualen innehåller rätt syntax:

Glöm inte att sända argumenten i rätt ordning . De ska skickas i samma ordning som de används i frågan (du bytte ut bilden med postdatum), så det borde vara:

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



  1. Representerar IPv4/IPv6-adresser i Oracle

  2. Senaste datetime från unika mysql index

  3. Stöder Oracle fulltextsökning?

  4. MySQL-datumformat DD/MM/ÅÅÅÅ välja fråga?