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

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

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

  new customer row ';
query("ROLLBACK");
return false;
} else {
//commit this transaction
query("COMMIT");
return true;
}
}
}

?>

这段代码比较长,虽然我不是很喜欢,但是它演示了怎样正确开始和结束Postgres 的事务以及怎样检查查询语句的错误。我要在所有的代码用到同样的错误监测程序,我想,你也应该如此。

需要计划好如果查询出错的处理办法,你是直接终止程序呢?还是重新运行查询语句,抑或继续执行,就当什么也没有发生?仔细考虑每种选择的结果。例如,如果不能得到下一个顾客的customer_id ,那么,建立新顾客的记录也就泡汤,接下来就是不能更新她的地址,不能往购物车里添加物品,对吧?

现在,我们看看添加物品的过程,这个步骤相对比较容易,在添加物品之前,要先检查物品是否在数据库中。这样比较安全,因为物品号码来自浏览器,可能被篡改。一旦知道物品存在,我们就能测试它是否已经在购物车里,如果已经放入,那么数量加一,而不是另外插入一行,否则,插入一条数量为一的记录到购物车。

表四、添加物品到购物车
<?php

function cart_add_item($item_id,$quantity=1) {
global $customer_id, $feedback, $conn;

$res=query("SELECT * FROM item_inventory WHERE part_number='$item_id'");

if (!$res || pg_numrows($res)<1) {
$feedback .= pg_errormessage($conn);
$feedback .= ' Error-item not found ';
return false;
} else {
// 检查物品是否放入购物车,如果是,增加数量
// 开始事务
query("BEGIN WORK");

$res=query("SELECT * FROM cart_items ".
"WHERE part_number='$item_id' AND customer_id='$customer_id' FOR UPDATE");

if (!$res || pg_numrows($res)<1) {

//如果没有该物品,新插入一条
$res=query("INSERT INTO cart_items ".
"(customer_id,part_number,quantity)".

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

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

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

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

供求信息




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