PHP更新查询,代码修订

时间:2013-07-07 17:30:36

标签: php sql-update

我在同一个网页上有两个功能,每个功能都会根据你按下的按钮更新同一个数据库中的一个不同的表。

此功能修改一个表并起作用:

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 Ok并在表上保存新值。

当我按下SavetblAnnouncement按钮时,我可以看到消息已完成通知,但表TblAnuncios将不会更新。

因为它在同一个文件上,所以数据库是相同的,并且函数SaveMItem能够更新表我假设与数据库的连接正常。

有谁能让我知道我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分: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注入,并且如果标题或文本包含引号字符,也可以使查询正确。