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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
PHP 七大优势分析
Jun 23 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php的ajax简单实例
Feb 27 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
体育教师自荐信范文
2013/12/16 职场文书
心理健康教育制度
2014/01/27 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
火箭队口号
2014/06/18 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
李强感恩观后感
2015/06/17 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis