您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> php >> 正文

用PHP4 和 PostgreSQL 构建一个电子商务应用

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-2-2 我要参与讨论

 
"VALUES ($customer_id,$item_id,$quantity)");

if (!$res || pg_cmdtuples($res) < 1) {
$feedback .= pg_errormessage($conn);
$feedback .= ' Error-couldn't insert into cart ';
//尽管没有东西被改变,但是最好还是回滚事务
query("ROLLBACK");
return false;
} else {
query("COMMIT");
return true;
}
} else {
//购物车中已经存在该物品
$res=query("UPDATE cart_items SET quantity = quantity + $quantity ".
"WHERE part_number='$item_id' AND
customer_id='$customer_id'");
if (!$res || pg_cmdtuples($res) < 1) {
$feedback .= pg_errormessage($conn);
$feedback .= ' Error-couldn't increment quantity in cart ';
query("ROLLBACK");
return false;
} else {
// 提交改变,正式更新数据库。
query("COMMIT");
return true;
}
}
}
}

?>


现在我们能建立新顾客,并且他们添加物品了。我们现在需要结账,并减掉库存。这一部分是最复杂的,充分利用了Postgres 的事务功能和先进锁机制。

我们用Postgres 的 SELECT...FOR UPDATE 语法作为开始,这个语句能有效地对当前选择的行加锁使你能在一个事务里更新并提交改变。

通过在一个事务里使用这个语句,你可以保证数据的一致性。在其他的一些数据库,例如MySQL ,就不能锁定指定的数据行,而得到不正确的数据以及没用的库存统计。

这个语句也能利用子查询,另外一个数据库的标准特性。子查询可以让你很省事地把两个查询结合在一起,

锁定行以后,我们需要按照购物车的物品减少对应的库存量。为简便起见,我们对库存不够不报告错误,并把库存变为负数。你可以自己写一个管理页面,查看负数库存的物品,并去订购。

最后,我们更新顾客表中的信用卡,购买信息,合计购买金额,撤掉这个顾客的session。

表五、结账,减库存
<?

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

在google里搜索更多用PHP4 和 PostgreSQL 构建一个电子商务应用

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明