2013-07-07 49 views
0

我有兩個功能在同一個網頁上,他們每個人都將根據您按哪個按鈕更新同一數據庫上的一個不同的表。PHP更新查詢,代碼修訂

這個函數修改一個表和作品:

function SaveMItem() 
    { 
    $DayOfWeekNumber = 0; 
     if ($_POST['selDayOfTheWeek']) 
     {$DayOfWeekNumber = $_POST['selDayOfTheWeek'];} 

     mysql_query("UPDATE tblMItem SET ItemText = '" . $_POST['txtFirstOne'] . "' WHERE MenuItemID = " . (1 + $DayOfWeekNumber)); 
      echo "SaveMItem Ok"; 
    } 

function SavetblAnnouncement(){ 

    mysql_query("UPDATE TblAnuncios SET Title=".$_POST['txtAnnouncementTitle']. ",Content=".$_POST['txtAnnouncementContent']." WHERE 1"); 

    echo "Completed announcement" ; 
    } 

當我按下按鈕SaveMItem我可以看到消息SaveMItem確定並表保存新值。

當我按下SavetblAnnouncement按鈕時,我可以看到消息Completed announcement,但表TblAnuncios不會更新。

由於這是在同一個文件上,數據庫是相同的,功能SaveMItem是能夠更新表我想連接到數據庫是好的。

任何人都可以讓我知道我做錯了什麼嗎?

在此先感謝。

+0

您的更新查詢應更新整個表的所有記錄相同。 –

+0

在分析真正發生的事情之前:使用錯誤處理!你盲目地相信事情能夠發揮作用,現在你覺得可能是錯的。 MySQL肯定會拋出一個錯誤,告訴你什麼是錯誤的,但你不聽!檢查phps mysql擴展的手冊並閱讀如何檢測錯誤。 – arkascha

+0

除此之外:mysql擴展已折舊,請使用mysqli或PDO代替,並且您的代碼當前已廣泛開放給sql注入! – arkascha

回答

1

你缺少值的報價。

$title = mysql_real_escape_string($_POST['txtAnnouncementTitle']); 
    $txt = mysql_real_escape_string($_POST['txtAnnouncementContent']); 
    mysql_query("UPDATE TblAnuncios SET Title='".$title. "',Content='".$txt."' WHERE 1"); 

您還應該轉義字符串,以防止SQL注入,並且如果標題或文本包含引號字符,也會使查詢正確。