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 strtotime函数详解
Dec 18 PHP
php学习之 数组声明
Jun 09 PHP
PHP 验证码的实现代码
Jul 17 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php实现的百度搜索某地天气的小偷代码
Apr 23 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 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代码DOS造成用光网络带宽
2011/03/01 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
简单谈谈Python中的闭包
2016/11/30 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
法制报告会主持词
2014/04/02 职场文书
房地产开发项目建议书
2014/05/16 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
社会工作专业自荐信
2014/09/26 职场文书
运动会班级前导词
2015/07/20 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
Redis+AOP+自定义注解实现限流
2022/06/28 Redis
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS