对于我的生活,我已经使用了这么久,我做了很多有用的更新,但由于某些原因,它不适用于这段代码:
如果有人发现任何问题,请帮助我。我有点卡住了:
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'
答案 0 :(得分:0)
使用参数化查询。你的问题是$ accTypeID可能是一个空值或未定义。如果发生这种情况,则将用户名设置为bob' or true
将导致购买始终成功。
始终使用参数化查询。它也会纠正这样的事情,因为undef应该被视为NULL
或至少''