函数没有更新Mysql表

时间:2014-06-27 20:25:39

标签: php mysql sql

我写过这个小函数,它有两个更新两列。但它不起作用。表中有一列名为 currentstatus ,其值必须从排队更改为已完成,列使用时间其值需要增加+1。增量也不会发生。

过去几个小时我一直试图解决这个问题。但这似乎不起作用。

可能是什么问题? 任何建议都表示赞赏。

function updateMessageQueue($indexid)
{
    //this function would update that the messagequeue has been completed
    $status = "Completed";
    global $conn;
    try
    {
        $statement = $conn->prepare("UPDATE messagequeue set currentstatus = :currentstatus AND usedtimes = usedtimes+1 where indexid = :index ");
        $statement->bindParam(':currentstatus',$status);
        $statement->bindParam(':index',$indexid);
        $statement->execute();
        $statement->closeCursor();
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
}

2 个答案:

答案 0 :(得分:2)

您有一个 AND 关键字,其中包含逗号。

SQL语法无效。正如Bill Karwin所指出的,SQL语法 有效。

AND关键字会导致此表达式:

:currentstatus AND usedtimes = usedtimes+1

要在布尔上下文中进行求值,因此表达式将返回零或NULL;并将该表达式的结果分配给currentstatus列。

答案 1 :(得分:1)

使用此

UPDATE messagequeue set currentstatus = :currentstatus , usedtimes = usedtimes+1 
where indexid = :index