PHP分层架构简单示例(2.数据访问类)

      上篇简单介绍了如何实现一个业务逻辑类,这篇将说明如何生成一个数据访问类。完整的数据访问类理论上应该像一个ORM,可以将关系数据表映射成相应的对象操作方法, 这里我们根据上篇文章的需求,设计一个简单的数据访问类。

     数据访问类最好不要包含任何业务逻辑,只有数据表的CRUD的方法以及根据规则的的事务等。我们的需求只是增加数据,修改和查看数据,只要实现这些方法即可。代码比较简单,不多说。

View Code
<?php
require_once('ConnectToDB.php');

class NewsData
{
private $con;
//加入一条数据
public function InsertOne($news)
{
$this->con = ConnecToDB::GetConnec();
$sql = "INSERT INTO news (Title,Content,PubTime,NewsClassId)
Value ('{$news->GetTitle()}','{$news->GetContent()}',
'{$news->GetPubTime()}','{$news->GetNewsClassId()}')";
$result=mysql_query($sql,$this->con);
if ($result)
{
$sql0 = "SELECT LAST_INSERT_ID() from news";
$resultSet=mysql_query($sql0,$this->con);
$ID=mysql_fetch_row($resultSet);
return $ID;
}else
{
return 0;
}
}
//修改一条数据
public function UpdateOne($news)
{
$this->con=ConnecToDB::GetConnec();
$sql = "UPDATE news SET Title='{$news->GetTitle()}',Content='{$news->GetContent()}',
PubTime='{$news->GetPubTime()}',NewsClassId='{$news->GetNewsClassId()}' WHERE Id='{$news->GetId()}'";
$result=mysql_query($sql,$this->con);
if ($result)
{
return $news->GetId();
}else
{
return 0;
}
}
//取出一个博客数据,这里映射成一个键只数组
public function GetOne($id)
{
$this->con=ConnecToDB::GetConnec();
$sql="SELECT * FROM news WHERE Id=$id";
$result=mysql_query($sql,$this->con);
$row=mysql_fetch_assoc($result);
$newsArray = array();
$newsArray["Id"] = $row["Id"];
$newsArray["Title"] = $row["Title"];
$newsArray["Content"] = $row["Content"];
$newsArray["PubTime"] = $row["PubTime"];
mysql_free_result($result);

return $newsArray;
}

}
?>

   注意的是ConnectToDB.php是一个单例连接数据库的类,这个类可以在这里找到

PHP单例模式控制MySql连接数

   连接方法如下:

$this->con = ConnecToDB::GetConnec();

  GetOne($id)方法取出的数据理论上应该映射为Blog对象,但是php中数组功能比较强大,这里我们映射成相应的键值数组。

  到这里,最简单的数据访问类已经完成。

  比如我们再一个三层架构的UI中要加入一篇新博客,获取数据后,只需要调用Blog业务逻辑类的AddOne()方法,查看的话只需调用GetOne()方法。在MVC框架中,Model过于庞大的话,也可以这样分层;同样需要开放API时,可以对业务逻辑层上加一个服务层来调用业务逻辑类的方法来实现RESTful等WEB服务。

转载于:https://www.cnblogs.com/wangjianzhou/archive/2011/11/23/2260055.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值