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表单转换textarea换行符的方法
Sep 10 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
php事务处理实例详解
Jul 11 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
php实现简单爬虫的开发
Mar 28 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
PHP设计模式之建造者模式定义与用法简单示例
Aug 13 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 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
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
javascript中length属性的探索
2011/07/31 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
python爬取微博评论的实例讲解
2021/01/15 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
Wallis官网:英国女装零售商
2020/01/21 全球购物
ORACLE十问
2015/04/20 面试题
教师年终个人自我评价
2013/10/04 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
分公司经理任命书
2014/06/05 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python