设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 IT领域 编程开发 网页编程 查看内容

PHP 通用数据库操作模块的设计与实现

2014-5-22 14:18| 发布者: dzly| 查看: 953| 评论: 0|原作者: 罗云芳

摘要: 数据操作是信息管理系统最核心功能部分,本文讨论了基于面向对象程序设计的思想,利用PHP 5 设计一个通用数据 库操作模块的设计思路与实现方法,该模块可以对常用的数据库进行操作,在使用PHP 进行信息系统的开发时可以直接使用 本模块对数据进行操作,从而有效地提高信息管理系统的开发效率。

  0 引言
  目前信息管理系统(MIS) 已经广泛应用于各行各业,而不管应用于哪个行业的信息管理系统,其核心功能就是数据操作。
  所以,任何一个信息管理系统的开发、设计。其数据操作模块设计的质量好坏将直接影响着系统的可维护性、可移植性和可扩展性。如何设计一个可维护性、可移植性和可扩展性强的通用数据操作模块是信息管理系统开发必须要考虑的问题。
  如果在进行信息管理系统开发时,没有把数据操作功能独立出来设计成一个模块,而是在需要进行数据操作时写上相应的数据操作功能代码去实现。这种方式虽然能够实现数据操作功能,但会造成严重的代码堆叠,而且系统的可维护性和可移植性都比较差。因此,设计一个通用的数据库操作模块,是设计开发一个信息管理系统的重要内容。
  PHP,是英文超级文本预处理语言Hypertext Preprocessor 的缩写。PHP 是一种HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML 文档的脚本语言,是一种比较流行的Web 开发语言,现在大部分中小企业基于B/S 架构的信息管理系统都使用PHP 语言进行开发。PHP 版本经过发展,现在的PHP 5 版本完全实现面向对象,利用PHP 的面向对象特性,大大的方便了通用数据库操作模块的设计与实现。
  1 通用数据库操作模块的设计思路
  使用面向对象程序设计语言进行信息系统开发时,数据库操作功能的实现基本都遵循以下几个步骤:
  使用连接对象与数据库建立连接。
  打开连接对象。
  构建操作命令。
  使用操作对象,执行操作命令对数据库中的数据进行操作。
  关闭连接对象,断开与数据库的连接。
  基于以上的数据库操作步骤和PHP 5 支持面向对象程序设计的特性,使用PHP 设计通用数据库操作模块的思路是:创建一个数据库操作模块页面,并取名为dataHelpers.php。
  在dataHelpers.php 文件中创建一个操作数据库的统一接口(dbHelpers)。
  在dataHelpers.php 文件中创建实现数据库操作接口的类,在类中具体实现对数据库操作的各种方法。
  通用数据库操作模块页面dataHelpers.php 的实现原理图如图1 所示:


  图1
  2 通用数据库操作模块的实现
  按设计思路,首先在dataHelpers.php 文件中创建操作数据库的统一接口dbHelpers,实现的关键代码如下:
  interface dbHelpers
  {
  // 连接数据库方法
  db_connect();
  // 数据查询方法
  db_query($sql);
  // 获取一条记录方法
  fetch_one_array($sql);
  // 获取多条记录方法
  fetch_array($sql);
  // 添加,删除,更新方法
  udiquery($sql);
  // 关闭数据库连接
  closedb();
  }
  接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。在此使用接口,就是利用接口以实现统一访问不同数据库的目的。interface 是创建接口的关键字,接口中的各方法只有声明,没有具体的实现,具体的实现在具体的数据库操作类中实现。
  接下来实现具体的数据库操作类,以下是实现操作Mysql数据库操作类的关键代码:
  class mysqlHelpers implements dbHeopers
  {
  private $db_host;
  private $db_user;
  private $db_pwd;
  private $db_name;
  private $conn;
  // 构造函数,初始化数据库连接
  function __construct($dbhost,$dbuser,$dbpwd,$dbna
  me)
  {
  $this->db_host=$dbhost;
  $this->db_user=$dbuser;
  $this->db_pwd=$dbpwd;
  $this->db_name=$dbname;
  $this->mysqldb_connect();
  $this->selectdb();
  }
  // 与数据库创建连接函数,db_host 表示数据库服务器
  名字符串,db_user 表示
  // 数据库登录名,db_pwd 表示登录数据库的密码。
  function db_connect()
  {
  $this->conn = mysql_connect($this->db_host,$this-
  >db_user,$this->db_pwd) or die("Could not Connect
  MySql Server");
  @mysql_query("set names utf8");
  }
  private function selectdb()
  {
  mysql_select_db($this->db_name) or die("unable to
  select dbname")
  }
  // 查询
  public function db_query($sql)
  {
  $query = mysql_query($sql, $this->conn);
  if(!$query) $this->halt('Query Error: ' . $sql);
  return $query;
  }
  // 获取单条记录
  function fetch_one_array($sql)
  {
  $this->query($sql, $this->conn);
  return mysql_fetch_array($this->result,MYSQL_
  ASSOC);
  }
  // 获取多条记录
  function fetch_array($sql)
  {
  $this->rows_array = '';
  $this->query($sql, $this->conn);
  while($rs=mysql_fetch_array($this->result,MYSQL_
  ASSOC)) $this->rows_array[]=$rs;
  return $this->rows_array;
  }
  // 添加、更新、删除操作
  function udiquery($sql)
  {
  $this->query($sql);
  $this->rows_num = mysql_affected_rows();
  if(mysql_errno() == 0)return $this->rows_num; 。
  lse return '';
  }
  // 关闭数据库连接
  function closedb()
  {
  mysql_close($this->conn);
  }
  }
  除了能够操作Mysql 数据库,通用数据库操作模块应该还可以操作常用的数据库,如sql server,Access,oracle 等常用的数据。这样才能达到通用的目的。此通用数据库操作模块正是基于这样去设计的,如要操作sql server 数据库,只要设计一个继承于dbHelpers 接口的sql server 数据库操作类,并在类中完成实现功能的具体方法,就可以实现对sql server数据库中的数据进行增、删、查、改的目的。整个sql server 数据库操作类基本和Mysql 数据库操作类一样,只是具体的数据库操作函数不一样,在此就不再对sql server 数据库操作类进行详细的设计。
  3 结束语
  上述通用数据库操作模块,支持对常用数据库数据的增、删、查、改等操作。在使用PHP 语言开发信息管理系统时,可以直接使用本通用数据库操作模块实现对数据的操作,从而加快系统的开发效率,并增加了系统的可维护性和可扩展性。
  
  

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-6-16 05:25 , Processed in 0.040317 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部