大多数人在日常生活中都会用到Web应用。有时是作为假期生活的一部分,有时是为了访问E-mail、预定假期、从在线商店购买商品或是查看感兴趣的新闻消息等。Web应用的形式有很多种。
不管是用何种语言编写的Web应用,有一点是相同的:它们都具有交互性并且多半是数据库驱动的。在互联网中,数据库驱动的Web应用非常普遍。它们通常都包含一个后台数据库和很多Web页面,这些页面中包含了使用某种编程语言编写的服务器端脚本,而这些脚本则能够根据Web页面与用户的交互从数据库中提取特定的信息。电子商务是数据库驱动的Web应用的最常见形式之一。电子商务应用的很多信息,如产品信息、库存水平、价格、邮资、包装成本等均保存在数据库中。如果读者曾经从电子零售商那里在线购买过商品和产品,那么应该不会对这种类型的应用感到陌生。数据库驱动的Web应用通常包含三层:表示层(Web浏览器或呈现引擎)、逻辑层(如C#、ASP、.NET、PHP、JSP等编程语言)和存储层(如Microsoft SQL Server、MySQL、Oracle等数据库)。Web浏览器(表示层,如Internet Explorer、Safari、Firefox等)向中间层(逻辑层)发送请求,中间层通过查询、更新数据库(存储层)来响应该请求。
下面看一个在线零售商店的例子。该在线商店提供了一个搜索表单,顾客可以按特定的兴趣对商品进行过滤、分类。另外,它还提供了对所显示商品作进一步筛选的选项,以满足顾客在经济上的预算需求。可以使用下列URL查看商店中所有价格低于$100的商品:
- http://www.victim.com/products.php?val=100
下列PHP脚本说明了如何将用户输入(val)传递给动态创建的SQL语句。当请求上述URL时,将会执行下列PHP代码段:
- // connect to the database
- $conn = mysql_connect("localhost","username","password");
-
- // dynamically build the sql statement with the input
- $query = "SELECT * FROM Products WHERE Price < '$_GET["val"]' " .
- "ORDER BY ProductDescription";
-
- // execute the query against the database
- $result = mysql_query($query);
-
- // iterate through the record set
- while($row = mysql_fetch_array($result, MYSQL_ASSOC))
- {
- // display the results to the browser
-
- echo "Description : {$row['ProductDescription']} <br>" .
- "Product ID : {$row['ProductID']} <br>" .
- "Price : {$sow['Price']} <br><br>";
- }
接下来的代码示例更清晰地说明了PHP脚本构造并执行的SQL语句。该语句返回数据库中所有价格低于$100的商品,之后在Web浏览器上显示并呈现这些商品以方便顾客在预算范围内继续购物。
- SELECT *
- FROM Products
- WHERE Price < '100.00'
- ORDER BY ProductDescription;
一般来说,所有可交互的数据库驱动的Web应用均以相同的(至少是类似的)方式运行。
【责任编辑: 云霞 TEL:(010)68476606】
|