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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
PHP 5.0 Pear安装方法
Dec 06 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
解析php中反射的应用
Jun 18 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
php+ajax实现仿百度查询下拉内容功能示例
Oct 20 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 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简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
Node.js文件操作详解
2014/08/16 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
H5实现仿flash效果的实现代码
2017/09/29 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Pytorch 实现权重初始化
2019/12/31 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
附答案的Java面试题
2012/11/19 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
房屋租赁意向书
2014/04/01 职场文书
学校社会实践活动总结
2014/07/03 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Python 中面向接口编程
2022/05/20 Python