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

用PHP4 和 PostgreSQL 构建由 徐永久 发表于 2001年10月16日 09:06。    

本文通过一个简单的web 应用,演示了 PHP 和 PostgresSQL 在电子商务中的应用。

不久以前,如果要架构一个严肃的Web应用的话,意味着购买价格不菲的Cold Fusion 许可,以及一个商业的数据库服务程序像Sybase 加上Sun 服务器。幸运的是,这样的日子一去不复返了。随着日渐成熟的免费数据库市场以及Apache 使用者的大量增长,一些替代产品已经具有相当,甚至超过了这些专有软件的能力。

比较好的开放源码软件的一种是 PHP,一个很像Perl 的脚本语言,以及PostgreSQL,一个很强大的面向对象的数据库。如果把两者结合起来的话,你可以设计从简单的留言簿到一个巨大的基于Web 的财务软件。PHP 提供大脑而Postgres 提供发达的肌肉。

下面介绍一个很基本的 PHP 购物车和库存应用,充分利用 Postgres 的事务功能。源码推渌柿峡梢源?PHPBuilder.com 下载。

首先要提到的是应用程序的结构,在我的PHP Web 应用中,我总是首先设置一个综合库,网站的每一个页面都会用到它,取名叫common.php 存放在include 目录。

这个库会处理日常任务,例如数据库连接,用户鉴别,站点的头部/尾部文件等。把这些函数放在一个地方,我们的应用看上去很干净,容易维护。

表一:示范的库代码

common.php:

<?php

//连接 postgres 数据库
$conn=pg_pconnect("user=tim dbname=db_example
");

//看连接是否成功
if (!$conn
) {
//如果失败则报告出错
echo pg_errormessage($conn
);
exit;
}

//站点的头文件

function site_header ($title
) {
return 
'<HTML>
<HEAD>
<TITLE>'
.$title.
'</TITLE>
</HEAD>
<BODY>'
;
}

// 页面结尾的 HTML 代码

function site_footer 
() {

return 
'</BODY></HTML>'
;

}

//一个简单的查询执行函数,用来减少代码

function query($sql
) {
global 
$conn
;
return 
pg_exec($conn,$sql
);
}

//让每一个页面自动启动session或者保存 session 状态

session_start
();

?>


因此,我们的第一个版本的库已经可以用了,它连接数据库,提供了简单的 HTML 
代码。

我们站点上每一个页面都包括:

<?php<n
>

require (
$DOCUMENT_ROOT.'/include/common.php'
);

echo 
site_header('示范页面'
);

/*
页面逻辑处理
*/

echo site_footer
();

?>

一般说来,在构建应用程序时,把逻辑和实际的表示(在我们这里就是HTML)分开是很明智的。因此,我把逻辑放到函数里面。但是PHP 使用函数调用的方法,缺点是没有标准的出错处理过程,如果函数内部有错的话,呼叫函数的程序不能把把错误信息传递给用户。在其他的语言,例如Java 里面,你可以使用try/catch语句来处理。

我的解决办法是,每个函数总是返回 true 或者 false ,设置一个$feedback全局变量,这样的话,结果就可以测试。现在有一个叫做PEAR (http://pear.php.net/) 的项目在做标准化错误处理以及数据库存取的努力,
但是到目前为止,还不能稳定运行。

下面是一个使用我的 true/false 方法调用函数的例子:

<?php

$result
=function_call_name
();

if (!
$result
) {
//显示错误
echo $feedback
;
} else {
//没有错误,继续
}

?>

好了,现在让我们开始想想购物车吧! 我们需要一些基本的数据结构存储购物车的数据。例如,我们需要一个库存数据库列出物品名字,部件号码,价格以及数量,同时,我们
还需要记录顾客购买的物品......太复杂了,就写这些吧。

表二、购物车数据结构
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值