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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
openPNE常用方法分享
Nov 29 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
解析PHP缓存函数的使用说明
May 10 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
php简单统计中文个数的方法
Sep 30 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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和ACCESS写聊天室(六)
2006/10/09 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
PHP最常用的正则表达式
2017/02/13 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
Python单链表原理与实现方法详解
2020/02/22 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
外贸业务员求职自荐信分享
2013/09/21 职场文书
班组长安全职责
2014/01/05 职场文书
手机被没收检讨书
2014/02/22 职场文书
工作检讨书范文
2015/01/23 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
七一慰问简报
2015/07/20 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers