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使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
php简单smarty入门程序实例
Jun 11 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
Laravel数据库读写分离配置的方法
Oct 13 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定时自动生成静态HTML的实现代码
2010/06/20 PHP
header跳转和include包含问题详解
2012/09/08 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python的即时标记项目练习笔记
2014/09/18 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
python实现趣味图片字符化
2019/04/30 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
介绍下Java的输入输出流
2014/01/22 面试题
银行职员个人的工作自我评价
2014/02/15 职场文书
读书小明星事迹材料
2014/05/03 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
小学英语课教学反思
2016/02/15 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL