使用update子句更新postgres db时遇到问题

时间:2014-03-23 12:41:16

标签: php sql

我无法使用更新子句更新我的postgressdb,其中itemid =" $ _ get [' itemid'];

这是我的sql代码,但它返回警告:pg_query():查询失败:错误:

$sql="UPDATE tbl_item SET itemname='".$_POST['ItemName']."', highqntythreshold='".$_POST['HQThreshold']."', lowqntythreshold='".$_POST['LQThreshold']."', qntyperunit='".$_POST['QPUnit']."', itemtype='".$_POST['IT']."', description='".$_POST['Description']."', WHERE itemid='". $_GET['itemid'] . "';";
$iteminfo = pg_query($sql);

并且它还返回" 警告:pg_affected_rows()期望参数1是资源,布尔值在D:\ Wamp \ wamp \ www \ Php \ CTea \ UpdateItem.php中给出第303行"

    if(pg_affected_rows($iteminfo)==1)
{
$msg = "Successfully added new Item, ".ucfirst($_POST['ItemName'])."!";         
}
else
{
$msg = "Error: in saving Item data!...";
}   

我认为我弄乱了一些东西,但无法弄清楚我搞砸了哪里和什么。

1 个答案:

答案 0 :(得分:1)

问题是(至少)在这一部分:

$_POST['Description']."', WHERE itemid='". $_GET['itemid'] . "'

where之前有一个逗号,所以你想要:

$_POST['Description']."' WHERE itemid='". $_GET['itemid'] . "'

但是,通常,您应该在变量替换后打印出查询字符串。大约98%的时间,错误很明显,您可以快速解决。