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
JpGraph php柱状图使用介绍
Aug 23 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 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
pw的一个放后门的方法分析
2007/10/08 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
Python实现的RSS阅读器实例
2015/07/25 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
乡镇办公室工作决心书
2014/03/11 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
Python sklearn分类决策树方法详解
2022/09/23 Python