Php消息更新程序清除行而不是更新它

I am using the following script to process a form that updates a message on my website, the problem I am having is that it is clearing the row instead of updating it for some reason. I have copied the query from Phpmyadmin so I know its correct, and I have also tried echoing the posted values and they all echo out just fine too, but for some unknown reason when I click submit in the form it just wipes the contents of the record instead of updating it.

<?php
    include("connectmysqli.php");

    if (isset($_POST['OnOff'])) {$OnOff = $_POST['OnOff'];}else {$OnOff = '';}
    if (isset($_POST['title'])) {$title = $_POST['title'];}else {$title = '';}
    if (isset($_POST['message'])) {$message = $_POST['message'];}else {$message = '';}

    $stmt = $db->prepare("UPDATE `itsnb_chronoforms_data_urgentform` SET  `title` =  '$title',`message` =  '$message',`OnOff` =  '$OnOff' WHERE `cf_id` =1;");
    if (!$stmt) trigger_error($db->error);
    $stmt->execute(); 

    echo 'Message Updated !';
    echo '<p><a href="index.php?&key='.$key.'">Back To Main Menu</a></p>';
    ?> 

This is the table :

enter image description here

did you echo the generated query?

there are exactly to ways I see this can happen:

  1. your form input names do not match the post keys you check in the three if statements
  2. you're not sending the form with method="post"

also you should only execute the update query if all three post fields are set and valid. like title and message must not be blank/empty and that onOff variable should eighter contain "on" or "off". otherwise echo an errormessage so the user knows what's wrong with his input.