Ajax(Asynchronous JavaScript + XML)正在迅速地成为时髦的技术,它可以为在浏览器中运行的 Web 应用程序提供具有桌面质量的软件特性……
简介
本文这个银行场景主要提供银行出纳员执行的基本服务。客户数据是这个场景的重要部分。在此之后,可以通过 Zend Core 提供的 ODBC MySQL 驱动程序获取和更新存储的客户数据。处理了客户数据之后,重点转移到提供银行出纳功能所需的核心银行逻辑。我们开发一个 PHP 代码模块来提供核心银行逻辑,并使用 ODBC 进行必要的数据库访问。使用 Zend Core 和 PHP 实现银行逻辑的主要优点是,可以利用内置的 MySQL 支持。
在建立数据库并开发 PHP 模块之后,为银行出纳员提供执行四个核心功能的用户界面。我们通过一个瘦客户机访问 PHP 模块中封装的核心银行逻辑。具体地说,这个基于 Web 的瘦客户机是按照 Ajax 风格生成的:XHTML、Cascading Style Sheet(CSS)、JavaScript 和 XMLHttpRequest(XHR)。它为银行出纳员提供执行核心银行功能的简单用户界面。这个浏览器用户界面还演示浏览器客户机逻辑与服务器端 PHP 逻辑进行网络通信的方法。
到本文结束时,我们会建立数据库、一个提供核心银行逻辑的 PHP 模块以及一个单页面浏览器用户界面,这些都是银行场景的组成部分。
MySQL 数据库
MySQL 是一种开放源码数据库。在我们的场景中,使用社区服务器版本,这是一个紧凑的数据库服务器,具有许多有用的特性。因为这个银行场景的实现基于开放源码产品,所以 MySQL 和 Zend Core PHP 是合适的组合。Zend Core 本身支持 MySQL,还有各种支持 MySQL 管理和编程的工具。在我们的场景中,只使用 MySQL 命令行客户机执行 MySQL 的管理。我们将用 MySQL 数据库为这个场景建立银行帐户数据库。
创建并填充银行数据库
在这个场景中,将为给定的客户存储以下帐户信息:
- AccountHolderName
- AccountNumber
- CheckingBalance
- StockName
- StockQuantity
- StockValue
给定客户的帐户信息包括帐户持有人的姓名、帐户号、当前的资产余额、客户拥有的一只股票的编号、拥有的股票总数以及股票投资组合的当前市值。下面几节详细介绍如何创建数据库表,然后用一些虚构的银行客户的帐户信息填充这个表。我们开始吧!
按照以下步骤创建数据库,然后用应用程序相关数据填充这个表:
- 如果 Eclipse 还未运行的话,就启动它(c:\eclipse\eclipse.exe)。
- 确保在 Eclipse 中启用了 PHP 透视图:
- 选择 Window->Open Perspective->Other->PHP 并单击 OK。
- 在 Eclipse 中,选择 File->New->Project。
- 选择 General->Project 并单击 Next。
- 在 project name 字段中输入 BankDB。
- 单击 Finish。
- 右击 BankDB project 并选择 New->Other。
- 选择 General-> File 并单击 Next。
- 在 File name 字段中,输入 BankDB.sql 并单击 Finish。
- 输入或粘贴 清单 1 中的代码作为 BankDB.sql 的内容。
- 保存并关闭这个文件。
- 为了启动 MySQL 命令行客户机,单击 Windows Start Menu->All Programs->MySQL->MySQL Server->MySQL Command Line Client。
- 在 MySQL 命令行窗口中,输入密码 webtech 并按 Enter。
- 在 mysql> 提示下,输入 source c:\eclipse\workspace\BankDB\BankDB.sql 并按 Enter。
- 检查 BankDB 数据库是否存在,以此确认前面的命令已经正确地执行了。检查所用的命令如下:
- show databases;
- use bankdb;
- show tables;
- describe account;
- 在 MySQL 命令行客户机中,输入 exit 关闭它。
清单 1. BankDB.sql 文件的内容
-- This file is part of the End-to-End Ajax development article in -- DROP DATABASE BankDB; CREATE DATABASE BankDB; USE BankDB; CREATE TABLE account ( -- insert into ACCOUNT values ('Frodo', 435245, 2344.45, 'GOOG', 100, 3453.32); |
使用 PHP 访问 MySQL 数据库
PHP 最受人喜爱的特性之一是,它为访问不同厂商的数据库中的数据提供了简单且出色的支持,包括 MySQL。它提供了一种集成业务逻辑和数据库的简便有效的方法。在过去几年中,PHP 社区完成了几项改进,比如 PHP Data Objects(PDO),PDO 提供一个抽象层,无论使用哪种数据库服务器,这个抽象层都公开同样的 API 函数。有两种风格的 PHP 数据库 API 函数:过程式的和面向对象的。在这个场景中,我们使用针对 MySQL 的直接数据库 API 来获得一个基本的了解。PHP 提供两种访问 MySQL 的方法:
- MySQL
- MySQL Improved
……