您的位置:首页 > 编程语言 > PHP开发

数据库查询中间层(PHP语言实现)

2010-06-09 17:04 162 查看
目标:实现数据库查询函数和业务逻辑的分离,以及查询类的复用.

设计步骤:

1.建立项目目录。

创建目录

将项目命名为tut,并分别建立conf和inc文件夹,在inc下建立class文件夹。

新增文件

在conf目录下新建conf.php文件,在inc/class下建立DAL.php,并在根目录下建立index.php文件。

2.创建测试数据库,并插入测试数据。

3.建立数据库连接。

/conf/conf.php文件中定义数据库连接变量,文件片段如下:

<?php

// Include DAL
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');

// Database
define ( 'DB_HOST', 'localhost' );
define ( 'DB_USER', 'root' );
define ( 'DB_PASSWORD', 'password1' );
define ( 'DB_DB', 'tut' );

?>


/inc/class/DAL.php建立数据库连接:

<?php
class DAL {
public function __construct(){}
private function dbconnect() {
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die ("<br>Could not connect to MySQL server");
mysql_select_db(DB_DB,$conn)
or die ("<br>Could not select the indicated database");
return $conn;
}
}
?>


 

4.实现具体的查询函数。
class DALQueryResult {
private $_results = array();
public function __construct(){}
public function __set($var,$val){
$this->_results[$var] = $val;
}
public function __get($var){
if (isset($this->_results[$var])){
return $this->_results[$var];
}
else{
return null;
}
}
}


private function query($sql){
$this->dbconnect();
$res = mysql_query($sql);
if ($res){
if (strpos($sql,'SELECT') === false){
return true;
}
}
else{
if (strpos($sql,'SELECT') === false){
return false;
}
else{
return null;
}
}
$results = array();
while ($row = mysql_fetch_array($res)){
$result = new DALQueryResult();
foreach ($row as $k=>$v){
$result->$k = $v;
}
$results[] = $result;
}
return $results;
}


5.实际项目中使用DAL类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息