php dao模式数据库更改_PHP设计模式-DAO (Data Access Objects) 数据访问对象模式

整理一下自己的学习Aaron Saray 写的PHP设计模式一些demo和自己的理解。大佬看完如果发现鄙人理解有误请立即指出,感谢拍砖,跪求鞭打

/**

* DAO (Data Access Objects) 数据访问对象

* -------------------------------------

* ** 来自说明 **

*

* 数据访问对象设计模式描述了如何创建提供透明访问任何数据源的对象

*

* 目的是解决下列两种特定的问题:

* 1. 重复

* 2. 数据源抽象化

* 数据访问对象模式提供数据库抽象层

* 现在,应用程序的主要处理代码不再考虑数据库引擎或表关系

* 调用这种对象的公共方法会返回任何数据类型,不用考虑内在SQL所需的类型

*

* =====================================

* ** 应用场景 **

*

* 数据访问

*

* -------------------------------------

*

* @version ${Id}$

* @author Shaowei Pu <54268491@qq.com>

*/

abstract class baseDao{

/**

* [$_connection 连接对象]

* @var [type]

*/

private $_connection;

/**

* [__construct 实例化数据库连接]

* @author Shaowei Pu

* @CreateTime 2017-02-22T17:52:04+0800

*/

public function __construct(){

try{

$this->_connection = new \PDO("mysql:dbname=mysql;host=localhost","root","pushaowei");

$this->_connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

}catch(PDOException $e){

die('error:'.$e->getMessage());

}

}

/**

* [feach description]

* @author Shaowei Pu

* @CreateTime 2017-02-22T18:01:48+0800

* @return [type] [description]

*/

public function fetch( $value , $key = ''){

// SQL START

$sql = 'SELECT * FROM '.$this->_tablename.' WHERE '.$key.' = "'.$value.'"';

// 输出

$dispose = $this->_connection->query($sql);

return $dispose->fetch(PDO::FETCH_ASSOC);

}

}

class selectHandle extends baseDao{

/**

* [$_tablename 得到表名]

* @var string

*/

protected $_tablename = 'db';

/**

* [getValue description]

* @author Shaowei Pu

* @CreateTime 2017-02-22T18:06:58+0800

* @param [type] $value [description]

* @return [type] [description]

*/

public function getDbValue( $value ){

$result = parent::fetch( $value, 'Host' );

return $result;

}

}

$select = new selectHandle;

var_dump($select->getDbValue('localhost'));

/*

+----------------------------------------------------------------------

| array (size=22)

| 'Host' => string 'localhost' (length=9)

| 'Db' => string 'sys' (length=3)

| 'User' => string 'mysql.sys' (length=9)

| 'Select_priv' => string 'N' (length=1)

| 'Insert_priv' => string 'N' (length=1)

| 'Update_priv' => string 'N' (length=1)

| 'Delete_priv' => string 'N' (length=1)

| 'Create_priv' => string 'N' (length=1)

| 'Drop_priv' => string 'N' (length=1)

| 'Grant_priv' => string 'N' (length=1)

| 'References_priv' => string 'N' (length=1)

| 'Index_priv' => string 'N' (length=1)

| 'Alter_priv' => string 'N' (length=1)

| 'Create_tmp_table_priv' => string 'N' (length=1)

| 'Lock_tables_priv' => string 'N' (length=1)

| 'Create_view_priv' => string 'N' (length=1)

| 'Show_view_priv' => string 'N' (length=1)

| 'Create_routine_priv' => string 'N' (length=1)

| 'Alter_routine_priv' => string 'N' (length=1)

| 'Execute_priv' => string 'N' (length=1)

| 'Event_priv' => string 'N' (length=1)

| 'Trigger_priv' => string 'Y' (length=1)

+----------------------------------------------------------------------

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值