PHP简单数据库操作类实例【支持增删改查及链式操作】


Posted in PHP onOctober 10, 2016

本文实例讲述了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之对抗Web扫描器的脚本技巧
Oct 01 PHP
php explode函数实例代码
Feb 27 PHP
php判断GIF图片是否为动画的方法
Sep 04 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
CodeIgniter生成静态页的方法
May 17 PHP
php好代码风格的阶段性总结
Jun 25 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 #PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 #PHP
PHP对象链式操作实现原理分析
Oct 09 #PHP
SAE实时日志接口SDK用法示例
Oct 09 #PHP
对PHP依赖注入的理解实例分析
Oct 09 #PHP
mac下多个php版本快速切换的方法
Oct 09 #PHP
Laravel中间件实现原理详解
Oct 09 #PHP
You might like
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
初识PHP
2014/09/28 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JavaScript中关联原型链属性特性
2016/02/13 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
python实现双色球随机选号
2020/01/01 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python中常用的数据结构介绍
2021/01/12 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
物流专业求职计划书
2014/01/10 职场文书
学校安全工作制度
2014/01/19 职场文书
寄语十八大感言
2014/02/07 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python