使用Postgresql更新

时间:2013-09-19 21:24:31

标签: php postgresql

对于我的生活,我已经使用了这么久,我做了很多有用的更新,但由于某些原因,它不适用于这段代码:

如果有人发现任何问题,请帮助我。我有点卡住了:

if (isset($_POST['membership'])){

    $accTypeID = getAccTypeID($db, $_POST['membership']);
    $res = pg_query("SELECT * FROM accounts where username='" .$_SESSION['username']. "'");
    $rec = pg_fetch_row($res);
    if($res > 0){
        pg_query("UPDATE accounts SET paymentdate ='" .date("Y-m-d"). "', 
        accounttype_id=$accTypeID 
        WHERE username='" .$_SESSION['username']. "'");
        $p->addContent('Purchasing has succeeded.');
    }

}   

我在我的网站上运行它并说它可以工作,但是当我检查我的数据库时,没有任何更新,我的控制台产生了这个错误:

pg_query():查询失败:错误:语法错误在“WHERE”处或附近\ nLINE 3:WHERE username ='anuj'

1 个答案:

答案 0 :(得分:0)

使用参数化查询。你的问题是$ accTypeID可能是一个空值或未定义。如果发生这种情况,则将用户名设置为bob' or true将导致购买始终成功。

始终使用参数化查询。它也会纠正这样的事情,因为undef应该被视为NULL或至少''