本文实例讲述了PHP简单数据库操作类。分享给大家供大家参考,具体如下:

在进行项目开发时,数据库是必不可少的东西了。但是很多时候却又对数据库SQL语句的繁杂而感到头疼。提供一个我自己使用的数据库操作类(模型Model),供大家使用。支持增、删、改、查,支持链式操作,代码不到100行,非常小巧方便,很适合小项目的快速部署使用。

/**

*

* @Authot: summer

*

* @E-mail: wenghang1228@me.com

*

* @Data: 2015-02-06

*

* @Project: 数据库操作类Model

*

* @Version:1.0

*

* @版权所有:夏天的风————记录夏天对技术的追求与生活的热爱

*

* @网址: http://www.xtwind.com

**/

class Model{

public $field;

public $tabname;

public $where;

public $order;

public $limit;

//构造函数,链接数据库,给表赋值

function __construct($tabname){

mysql_connect(HOST,USER,PASSWORD);

mysql_select_db(DBNAME);

mysql_query("set names utf8");

$this->tabname=$tabname;

}

//组合字段

function field($field){

$this->$field=$field;

return $this;

}

//组合where条件

function where($where){

$this->where="where ".$where;

return $this;

}

//组合order排序条件

function order($order){

$this->order="order by ".$order;

return $this;

}

//组合limit限制条数

function limit($limit){

$this->limit="limit ".$limit;

return $this;

}

//组合和执行select语句

function select($all=""){

if ($all) {

$sql="select {$all} from {$this->tabname} order by id";

}else{

$sql="select {$this->filed} from {$this->tabname} {$this->where} {$this->order} {$this->limit}";

}

$rst=mysql_query($sql);

while ($row=mysql_fetch_assoc($rst)) {

$rows[]=$row;

}

return $rows;

}

//组合和执行insert语句

function insert($post){ //数据库插入操作,接收数组

foreach ($post as $key => $value) {

$keys[]=$key;

$vals[]="'".$valu."'";

}

$keyStr=join(",",$keys);

$valStr=join(",",$vals);

$sql="insert into {$this->tabname}($keystr) values()";

if (mysql_query($sql)) {

return mysql_insert_id();

}else{

return false;

}

}

//组合和执行delect语句

function delect(){

$sql="delect from {$this->tabname} {$this->where}";

if (mysql_query($sql)) {

return mysql_affected_rows();

}else{

return false;

}

}

//组合和执行updata语句

function update($post){

foreach ($psot as $key => $value) {

$sets[]="{$key}='{$val}'";

}

$setStr=join(",",$sets);

$sql="update {$this->tabname} set {$setStr} {$this->where} ";

if (mysql_query($sql)) {

return mysql_affected_rows();

}else{

return false;

}

}

//从表中取一行数据

function find(){

if ($this->order) {

$sql="select * from {$this->tabname} {$this->order} limit 1";

}else{

$sql="select * from {$this->tabname} order by id limit 1";

}

$rst=mysql_query($sql);

while ($row=mysql_fetch_assoc($rst)) {

$rows[]=$row;

}

return $rows;

}

//获取总行数

function total(){

$sql="select count(*) from {$this->tabname}";

$rst=mysql_query($sql);

if ($rst) {

$row=mysql_fetch_row($rst);

return $row[0];

}else{

return false;

}

}

}

//Model类对象工厂

function M($tabname){

return new Model($tabname);

}

define("HOST","localhost");

define("USER", "root");

define("PASSWORD", "123456");

define("DBNAME", "test")

$user=new Model("user");

$user->field("id,name")->where("id=3")->order("id desc")->limit("3")->select();

完整实例代码点击此处本站下载。

希望本文所述对大家PHP程序设计有所帮助。

php加数据库开发案例,PHP简单数据库操作类实例【支持增删改查及链式操作】相关推荐

  1. c#利用反射+特性实现简单的实体映射数据库操作类实现自动增删改查(一)

    ///对字段特性的映射类 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  2. 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用

    2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...

  3. 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

    Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...

  4. 大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...

    一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...

  5. MongoDBC++开发(四)bsoncxx::builder::stream::document的增删改查操作

    2. mongocxx 续上一篇,接着看一下mongocxx中的文件有些什么. 先看一下基本的增删改查操作: 2.1 connect.cpp 数据库的链接 参见之前的博客. 2.2 create.cp ...

  6. Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载

    前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...

  7. jsp mysql简单登录_简单的登录页面,实现增删改查运用jsp/servlet和mysql数据库免费分享...

    属性            大小     日期    时间   名称 ----------- ---------  ---------- -----  ---- 文件        455  2012 ...

  8. mysql数据库员工表创建_mysql数据库简单练习(创建表格,增删改查数据)

    1.创建一个员工表 字段     属性 id        整形(int) name     字符串(varchar)(长度为20) gender    字符串(长度为2) birthday  日期型 ...

  9. mysql数据库创建员工表_mysql数据库简单练习(创建表格,增删改查数据)

    1.创建一个员工表 字段     属性 id        整形(int) name     字符串(varchar)(长度为20) gender    字符串(长度为2) birthday  日期型 ...

最新文章

  1. 面试官问:select......for update会锁表还是锁行?
  2. HDU2196[树形dp+二次扫描]java和c++版本题解
  3. Netbeans搭建Android环境
  4. [MySQL] - 返回影响行数
  5. HDU 1542:Atlantis(扫描线+线段树 矩形面积并)***
  6. 18.外部相机校准——旋转(Rotation),R是什么样子的,绕Z轴旋转的例子,齐次坐标旋转_2
  7. 人工智能被拒绝,语音识别做不到给电视直播加字幕?
  8. windows程序设计之简单界面入门
  9. 国内android源码下载网站
  10. 应该如何写详细设计文档
  11. 网页常用字体 【参考】
  12. WPS简历模板的图标怎么修改_160套个人求职简历模板精美套装,修改内容直接套用...
  13. 篆刻学简体——第一章
  14. 阿里巴巴大数据之路-数据整合管理体系
  15. 使用Markdown如何修改图片大小
  16. vue.js+muse-ui制作在线简历编辑
  17. bugku-秋名山老司机
  18. 简述igp和egp_igp egp
  19. ip.php是什么意思,有人频繁试探云主机的 ip_js. PHP 是什么操作?
  20. 敬业签云便签提示“基础连接已关闭,发送时发生错误!”如何解决

热门文章

  1. Java基础——String类(二)
  2. 201521123050 《Java程序设计》第8周学习总结
  3. 注解描述(持续更新)
  4. 关于AE大数据点文件读取生成SHP文件时使用IFeatureBuffer快速提高读取效率
  5. 去除android2.1移动设备3G图标
  6. 彻底解决Python3写爬虫或网站时的乱码问题
  7. linux 系统 cp: omitting directory 问题解决
  8. C#------引用System.Data.Entity后DbContext依然无法继承解决方法
  9. 解决CentOS出现“No package redis available“提示问题
  10. C++对带有分隔符的字符串 分割为数字的通用解决方案