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 相关文章推荐
如何将一个表单同时提交到两个地方处理
Oct 09 PHP
php一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 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
用mysql内存表来代替php session的类
2009/02/01 PHP
在JavaScript中调用php程序
2009/03/09 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
HTML的select控件美化
2017/03/27 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python输出指定字符串的方法
2020/02/06 Python
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
联强国际笔试题面试题
2013/07/10 面试题
经理秘书找工作求职信
2013/12/19 职场文书
数学国培研修感言
2014/02/13 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
销售目标责任书
2014/07/23 职场文书
见习报告的格式
2014/11/04 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
第一书记观后感
2015/06/08 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
速龙x4-860k处理器相当于i几
2022/04/20 数码科技