PHP实体层基础类

class BaseModel
{
private $tableName;
private $fields=array();
function __construct()
{
$this->tableName=rtrim(get_class($this),'M');
}
function __get($n)
{
return($this->$n);
}
function __set($n, $value)
{
$this->$n = $value;
$this->fields[$n]=$value;
} function Add()
{
$f='';
$f1='';
$arrKeys=array_keys($this->fields);
foreach($arrKeys as $row)
{
$f.=$row.',';
$f1.=':'.$row.',';
}
$f=rtrim($f,',');
$f1=rtrim($f1,',');
$sql='insert into '.$this->tableName.'('.$f.') values('.$f1.')';
//echo $sql;
global $dbh;
return $dbh->edit($sql,$this->fields);
} function Update($sql_where,$params=array())
{
$f='';
$f1='';
$arrKeys=array_keys($this->fields);
foreach($arrKeys as $row)
{
$f.=$row.'=:'.$row.',';
}
$f=rtrim($f,',');
$sql='update '.$this->tableName.' set '.$f.' where '.$sql_where; $arrKeys1=array_keys($params);
foreach($arrKeys1 as $row)
{
$this->fields[$row]=$params[$row];
} global $dbh;
return $dbh->Edit($sql,$this->fields);
} function Delete($sql_where,$params=array())
{
$sql='delete from '.$this->tableName.' where '.$sql_where;
//echo $sql; global $dbh;
return $dbh->Edit($sql,$params);
} }

实体层:

class proM extends BaseModel
{
private $proName;
private $proDetail;
private $proPic;
private $proPic1;
private $proAttr;
private $proTaxis;
private $proIsHome;
private $proIsTJ;
private $proIsCTJ;
private $proIsDel;
private $proAddTime;
private $proisHot;
private $proisPorClass;
private $proisYN;
private $proGL;
private $proSeoT;
private $proSeoK;
private $proSeoD;
private $proBH;
private $FK_proClass;
private $proModel;
private $proPrice;
private $proDiscount;
private $proHit;
private $proURL;
private $proisKdWords;
private $proisKdDone;
private $proFL;
}

使用:

$m=new proM();
$m->proName='代码';
$m->proDetail='php开发';
$m->Update('proID=:proID',array(proID=>1));

PHP实体层基础类的更多相关文章

  1. C# ORM修改实体层

    实体层:[数据库中是么以偶Contents2这个字段的],之所以在实体层添加一个Contents2,是因为: 所以在添加之后: 返回json形式,就用Contents,后台添加就用Contents2. ...

  2. 用EA生成实体层代码

    在个人版机房重构中.实体层的代码敲得有点儿烦了.不同的实体仅仅是命名不同.代码结构全然一样.遇到反复的事情,就该动动脑.想想办法了. 以下给大家介绍使用EA生成实体层的代码. 首先.建一个类,注意选择 ...

  3. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(3)之创建实体层

    实体层是介于表现层和业务层之间,同时也作为数据载体贯穿了整个项目之间的数据传递,创建实体有很多方法,我们可以手工创建,也可以代码生成引擎等等,我们这里主要应用数据实体模型连接生成: 创建好之后,我们需 ...

  4. JavaWeb项目开发案例精粹-第3章在线考试系统-006实体层

    1. package com.sanqing.po; /* * 学生表,保存学生编号,系统密码 */ public class Student { private String studentID; ...

  5. JavaWeb项目开发案例精粹-第2章投票系统-005实体层

    1. package com.sanqing.bean; /** * * 投票选项类 * */ public class VoteOption { private int voteOptionID; ...

  6. C# .Net中七层架构浅析

    Model实体层,DBUtility数据访问抽象类,IDAL数据访问接口层,SQLServerDAL数据访问层,DALFactory数据访问工厂类,BLL业务逻辑层,UI界面层 一.项目名称及描述:( ...

  7. view, surfaceView, invalidate, postInvalidate, 刷新屏幕

    http://blog.csdn.net/linghu_java/article/details/9985489 1.view view在api中的结构 Java.lang.Object Androi ...

  8. C#简单构架之EF进行读写分离+多数据库(Mysql/SqlService)

    最近因为项目需要,研究了下EF的读写分离,所以做了一个demo进行测试,下面是项目的结构 表现层view 主要提供Web.WebApi等表现层的解决方案 公共层public 主要提供项目公共类库,数据 ...

  9. 权限管理系统之项目框架搭建并集成日志、mybatis和分页

    前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...

随机推荐

  1. linux qt下 QSqlDatabase: QMYSQL driver not loaded

    出现上述问题是qt安装目录未包含mysql驱动. 解决方法如下: 1.查看系统是否存在libqsqlmysql.so find / -name libqsqlmysql.so 2.若不存在该文件则安装 ...

  2. Jmeter(一)http接口添加header和cookie

    HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post)的时候,往往后端需要一些验证信息,比如说web服务器需要带过去c ...

  3. Spark2.0 特征提取、转换、选择之二:特征选择、文本处理,以中文自然语言处理(情感分类)为例

    特征选择 RFormula RFormula是一个很方便,也很强大的Feature选择(自由组合的)工具. 输入string 进行独热编码(见下面例子country) 输入数值型转换为double(见 ...

  4. JVM生命周期

    JVM生命周期可以分为以下三个阶段 启动:任何class文件的main函数都可认为是jvm示例的起点. 运行:以main函数为起点,后续的线程都由它启动,包括守护线程和用户线程.main方法启动的线程 ...

  5. python的数据类型的有序无序

    列表有序可变 字典无序不可变 元组不可变 集合无序不可变 数字不可变 字符串不可变

  6. centos7命令1

    ls  查看当前路径下的文件或文件夹 pwd 查看当前路径,例如/home/python   表示根目录下的home文件夹下的python文件夹 clear清空屏幕 /斜杠 \反斜杠 |竖杠 _下划线 ...

  7. jq--ajax中止请求

    比如我后端设置延迟3s再响应给前端,我用的是node之koa2 router.get('/vueDemo/getStudents', async ( ctx ) => { //延迟3s asyn ...

  8. Error: registers may not be the same -- `strexb r3,r2,[r3]'

    tmp\ccFziEge.s:914: Error: registers may not be the same -- `strexb r3,r2,[r3]'tmp\ccFziEge.s:968: E ...

  9. 对 META标签 的一点点了解

    ①META标签是啥 META标签,是HTML语言head区的一个辅助性标签.在几乎所有的page里,我们都可以看 到类似下面这段html代码: ---------------------------- ...

  10. mysql更新子查询中的内容

    UPDATE t_finance_certify_copy c SET c.biz_type=2,c.sub_biz_type=18WHERE c.finance_certify_id IN(SELE ...