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结合表单实现一些简单功能的例子
Jun 04 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
php 函数中使用static的说明
Jun 01 PHP
php实现的日历程序
Jun 18 PHP
php如何获取文件的扩展名
Oct 28 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
Yii框架核心组件类实例详解
Aug 06 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
基于mysql的论坛(6)
2006/10/09 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
详解vue路由
2020/08/05 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
当当网软件测试笔试题
2015/11/24 面试题
个人自我鉴定范文
2013/10/04 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
服务承诺口号
2014/05/22 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL