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 相关文章推荐
BBS(php & mysql)完整版(七)
Oct 09 PHP
谈谈PHP的输入输出流
Feb 14 PHP
php debug 安装技巧
Apr 30 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
PHP的Yii框架中Model模型的学习教程
Mar 29 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
在thinkphp5.0路径中实现去除index.php的方式
Oct 16 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 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 URL跳转代码 减少外链
2011/06/25 PHP
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
javascript语言结构小记(一)
2011/09/10 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
js闭包的用途详解
2014/11/09 Javascript
javascript验证身份证号
2015/03/03 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
python操作MongoDB基础知识
2013/11/01 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
车工岗位职责
2013/11/26 职场文书
大学生实习思想汇报
2014/01/12 职场文书
创业培训计划书
2014/05/03 职场文书
施工安全生产承诺书
2014/05/23 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
中学推普周活动总结
2015/05/07 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python