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 cron中的批处理
Sep 16 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
详解Window7 下开发php扩展
Dec 31 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
详解php语言最牛掰的Laravel框架
Nov 20 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
Laravel 数据库加密及数据库表前缀配置方法
Oct 10 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
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
python循环监控远程端口的方法
2015/03/14 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python微信好友数据分析详解
2018/11/19 Python
python3安装speech语音模块的方法
2018/12/24 Python
python ftplib模块使用代码实例
2019/12/31 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
python实现银行账户系统
2021/02/22 Python
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
学生会主席事迹材料
2014/01/28 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
如何做好工作总结!
2019/04/10 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书