PHP中的基本SQL Update查询

时间:2012-11-01 15:30:57

标签: php sql

我正在使用MVC框架,并且在SQL查询中存在问题。

在我的网站上发布帖子的用户会收到一封包含确认网址的电子邮件:

mywebsite.com/confirm/f9b83b3bf994e5db3b06ya20eb306a24/

路由正确,但我想将SQL“已发布”字段更改为1(默认情况下设置为0)

所以基本上,除了我的UPDATE SQL查询之外一切正常,它可能是愚蠢的但是我是这个领域的初学者,经过多次尝试我无法解决它。

    if(substr(ROUTE, 0, 8) == 'confirm/')
        {
            if(strlen($code = substr(ROUTE, 8, 32)) == 32)
            {
                if($row = db::fetch(db::query('SELECT `id` FROM `'.DB_PREFIX.'Posts` WHERE `published`=0 AND `confirm`="'.db::escape($code).'"'), 'row'))
                {

//This is the problematic line
                 db::query('UPDATE '.DB_PREFIX.'Posts SET published=1 WHERE published=0 AND confirm="'.db::escape($code).'"');

                }
            }

            header('Location: '.WEB.'publish_success.html');
        } 

谢谢你或你的帮助:)

编辑:修复了添加WHERE子句的问题!

2 个答案:

答案 0 :(得分:3)

UPDATE命令中没有WHERE子句。

db::query('UPDATE `'.DB_PREFIX.'.Posts` SET `published`=1 WHERE id = ' . $row['id'] );

答案 1 :(得分:1)

您可以尝试以下查询。我不确切知道它是否会起作用。

  db::query("UPDATE `".DB_PREFIX."Posts` SET `published`=1 WHERE `published`=0 AND `confirm`='".db::escape($code)."'");