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读取数据库信息的几种方法
May 24 PHP
基于Discuz security.inc.php代码的深入分析
Jun 03 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
PHP实现货币换算的方法
Nov 29 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 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代码
2007/03/08 PHP
php 的反射详解及示例代码
2016/08/25 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python实现五子棋小游戏
2020/03/25 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
使用python画社交网络图实例代码
2019/07/10 Python
python函数的作用域及关键字详解
2019/08/20 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python获取整个网页源码的方法
2020/08/03 Python
python定时截屏实现
2020/11/02 Python
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
网络营销策划方案
2014/06/04 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP