2013-06-24 95 views
0

我正在使用以下腳本來處理更新我的網站上的消息的窗體,我遇到的問題是它正在清除行而不是由於某種原因進行更新。我已經從Phpmyadmin複製了查詢,所以我知道它的正確性,並且我也試着回顯所發佈的值,並且它們也都很好地回顯出來,但是由於某種未知的原因,當我單擊表單中的提交時,它只是擦除記錄而不是更新它。Php消息更新程序清除行而不是更新它

<?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>'; 
    ?> 

這是表:

enter image description here

+0

爲什麼你不使用預處理語句? –

+0

對於這一點稍微矯枉過正,它只是一個簡單的發佈表單數據腳本。 –

+0

準備好的語句不是「過度殺傷」,但**嚴格要求** –

回答

1

你呼應生成的查詢?

有確切地方式我看到這種情況發生:

  1. 你的表單輸入名稱不匹配的鑰匙後你檢查這三個if語句
  2. 你不發送與法的形式=「post」

此外,您應該只執行更新查詢,如果所有三個職位字段設置和有效。像標題和消息一定不能是空白/空的,onOff變量應該包含「on」或「off」。否則回顯錯誤消息,以便用戶知道他的輸入有什麼問題。

+0

如果我回聲>>回聲'消息現在:'。$ OnOff; echo'
'; echo'您設置了標題:'。$ title; echo'
';回覆'您設置的消息:'。$ message;它提出了我剛發佈的所有數據。 –

+0

這樣做:'echo「UPDATE \'itsnb_chronoforms_data_urgentform \'SET \'title \'='$ title',\'message \'='$ message',\'OnOff \'='$ OnOff'WHERE \'cf_id '= 1;'' –

+0

這給了我:UPDATE itsnb_chronoforms_data_urgentform' SET title ='這是標題',message ='這是消息',OnOff ='On'WHERE cf_id = 1; –