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 相关文章推荐
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
drupal 代码实现URL重写
May 04 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
php实现文章置顶功能的方法
Oct 20 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
laravel框架 api自定义全局异常处理方法
Oct 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命名空间学习详解
2014/02/27 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP缓冲区用法总结
2016/02/14 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
微信小程序入门教程
2016/11/18 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python在线运行代码助手
2016/07/15 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
什么是java序列化,如何实现java序列化
2012/11/14 面试题
运动会广播稿100字
2014/01/11 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
趣味运动会赞词
2015/07/22 职场文书