本文实例讲述了PHP封装类似thinkphp连贯操作数据库Db类与简单应用。分享给大家供大家参考,具体如下:

header("Content-Type:text/html;charset=utf-8");

/**

*php操作mysql的工具类

*/

classDb{

private$_db=null;//数据库连接句柄

private$_table=null;//表名

private$_where=null;//where条件

private$_order=null;//order排序

private$_limit=null;//limit限定查询

private$_group=null;//group分组

private$_configs=array(

'hostname'=>'localhost',

'dbname'=>'test',

'username'=>'root',

'password'=>'1234'

);//数据库配置

/**

*构造函数,连接数据库

*/

publicfunction__construct(){

$link=$this->_db;

if(!$link){

$db=mysqli_connect($this->_configs['hostname'],$this->_configs['username'],$this->_configs['password'],$this->_configs['dbname']);

mysqli_query($db,"setnamesutf8");

if(!$db){

$this->ShowException("错误信息".mysqli_connect_error());

}

$this->_db=$db;

}

}

/**

*获取所有数据

*

*@param$tableThetable

*

*@returnbooleanAll.

*/

publicfunctiongetAll($table=null){

$link=$this->_db;

if(!$link)returnfalse;

$sql="SELECT*FROM{$table}";

$data=mysqli_fetch_all($this->execute($sql));

return$data;

}

publicfunctiontable($table){

$this->_table=$table;

return$this;

}

/**

*实现查询操作

*

*@paramstring$fieldsThefields

*

*@returnboolean(description_of_the_return_value)

*/

publicfunctionselect($fields="*"){

$fieldsStr='';

$link=$this->_db;

if(!$link)returnfalse;

if(is_array($fields)){

$fieldsStr=implode(',',$fields);

}elseif(is_string($fields)&&!empty($fields)){

$fieldsStr=$fields;

}

$sql="SELECT{$fields}FROM{$this->_table}{$this->_where}{$this->_order}{$this->_limit}";

$data=mysqli_fetch_all($this->execute($sql));

return$data;

}

/**

*order排序

*

*@paramstring$orderTheorder

*

*@returnboolean(description_of_the_return_value)

*/

publicfunctionorder($order=''){

$orderStr='';

$link=$this->_db;

if(!$link)returnfalse;

if(is_string($order)&&!empty($order)){

$orderStr="ORDERBY".$order;

}

$this->_order=$orderStr;

return$this;

}

/**

*where条件

*

*@paramstring$whereThewhere

*

*@return(description_of_the_return_value)

*/

publicfunctionwhere($where=''){

$whereStr='';

$link=$this->_db;

if(!$link)return$link;

if(is_array($where)){

foreach($whereas$key=>$value){

if($value==end($where)){

$whereStr.="`".$key."`='".$value."'";

}else{

$whereStr.="`".$key."`='".$value."'AND";

}

}

$whereStr="WHERE".$whereStr;

}elseif(is_string($where)&&!empty($where)){

$whereStr="WHERE".$where;

}

$this->_where=$whereStr;

return$this;

}

/**

*group分组

*

*@paramstring$groupThegroup

*

*@returnboolean(description_of_the_return_value)

*/

publicfunctiongroup($group=''){

$groupStr='';

$link=$this->_db;

if(!$link)returnfalse;

if(is_array($group)){

$groupStr="GROUPBY".implode(',',$group);

}elseif(is_string($group)&&!empty($group)){

$groupStr="GROUPBY".$group;

}

$this->_group=$groupStr;

return$this;

}

/**

*limit限定查询

*

*@paramstring$limitThelimit

*

*@return(description_of_the_return_value)

*/

publicfunctionlimit($limit=''){

$limitStr='';

$link=$this->_db;

if(!$link)return$link;

if(is_string($limit)||!empty($limit)){

$limitStr="LIMIT".$limit;

}elseif(is_numeric($limit)){

$limitStr="LIMIT".$limit;

}

$this->_limit=$limitStr;

return$this;

}

/**

*执行sql语句

*

*@param$sqlThesql

*

*@returnboolean(description_of_the_return_value)

*/

publicfunctionexecute($sql=null){

$link=$this->_db;

if(!$link)returnfalse;

$res=mysqli_query($this->_db,$sql);

if(!$res){

$errors=mysqli_error_list($this->_db);

$this->ShowException("报错啦!
错误号:".$errors[0]['errno']."
SQL错误状态:".$errors[0]['sqlstate']."
错误信息:".$errors[0]['error']);

die();

}

return$res;

}

/**

*插入数据

*

*@param$dataThedata

*

*@returnboolean(description_of_the_return_value)

*/

publicfunctioninsert($data){

$link=$this->_db;

if(!$link)returnfalse;

if(is_array($data)){

$keys='';

$values='';

foreach($dataas$key=>$value){

$keys.="`".$key."`,";

$values.="'".$value."',";

}

$keys=rtrim($keys,',');

$values=rtrim($values,',');

}

$sql="INSERTINTO`{$this->_table}`({$keys})VALUES({$values})";

mysqli_query($this->_db,$sql);

$insertId=mysqli_insert_id($this->_db);

return$insertId;

}

/**

*更新数据

*

*@param$dataThedata

*

*@return(description_of_the_return_value)

*/

publicfunctionupdate($data){

$link=$this->_db;

if(!$link)return$link;

if(is_array($data)){

$dataStr='';

foreach($dataas$key=>$value){

$dataStr.="`".$key."`='".$value."',";

}

$dataStr=rtrim($dataStr,',');

}

$sql="UPDATE`{$this->_table}`SET{$dataStr}{$this->_where}{$this->_order}{$this->_limit}";

$res=$this->execute($sql);

return$res;

}

/**

*删除数据

*

*@return(description_of_the_return_value)

*/

publicfunctiondelete(){

$link=$this->_db;

if(!$link)return$link;

$sql="DELETEFROM`{$this->_table}`{$this->_where}";

$res=$this->execute($sql);

return$res;

}

/**

*异常信息输出

*

*@param$varThevariable

*/

privatefunctionShowException($var){

if(is_bool($var)){

var_dump($var);

}elseif(is_null($var)){

var_dump(NULL);

}else{

echo"".print_r($var,true)."";

}

}

}

$db=newDb();

//查询操作

var_dump($db->table('user')->where('id>2')->order('iddesc')->limit('2,4')->select());

//插入操作

var_dump($db->table('user')->insert(array('username'=>'user','password'=>'pwd')));

//更新操作

var_dump($db->table('user')->where('id=1')->update(array('username'=>'user1','password'=>'pwd1')));

//删除操作

var_dump($db->table('user')->where('id=1')->delete());

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:PHP实现的连贯操作、链式操作实例PHP简单数据库操作类实例【支持增删改查及链式操作】PHP三种方式实现链式操作详解PHP对象链式操作实现原理分析PHP实现链式操作的核心思想PHP实现链式操作的原理详解PHP实现链式操作的三种方法详解php类自动装载、链式操作、魔术方法实现代码thinkPHP5框架数据库连贯操作之cache()用法分析thinkphp连贯操作实例分析php链式操作的实现方式分析

php db类 应用实例,PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例相关推荐

  1. thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)

    为了方便操作Mysql数据库, 封装类似thinkphp连贯操作数据库的Db类<?php header("Content-Type:text/html;charset=utf-8&qu ...

  2. 【转载苏飞的博客】一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)

    一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)  by sufeinet, 地址: cnblogs.com/sufei/archive/2011/09/13/2174716.html ...

  3. php单文件上传实例,php封装的单文件(图片)上传类完整实例

    本文实例讲述了php封装的单文件(图片)上传类.分享给大家供大家参考,具体如下: //封装php中的单文件(图片)上传类 /* //参数1:$file 文件数组 5个属性值 name,type,siz ...

  4. 数据库封装 sql server mysql_mysql操作数据库进行封装实现增删改查功能

    SqlTool.class.php class SqlTool{ private $conn; private $host = "localhost"; private $user ...

  5. C#.NET操作数据库通用类(MS SQL Server篇)

    下面给出了一个C#操作MS SQL Server 数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句.执行存储过程.以下是其详细实现过程,希望大家共同修改优化之.稍后将介绍如何使用它 ...

  6. C#.NET操作数据库通用类

    下面给出了一个C#操作MS SQL Server 数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句.执行存储过程.以下是其详细实现过程,希望大家共同修改优化之.稍后将介绍如何使用它 ...

  7. python操作数据库工具类

    <pre name="code" class="python">#!/usr/bin/python # -*- coding: utf-8 -*- ...

  8. dropzone java实例_Java实现拖拽文件上传dropzone.js的简单使用示例代码

    Java实习生一枚,前端知识薄弱,最近因为工作需要,做了一个拖拽文件上传的功能,发现dropzone.js挺不错的,特地做个笔记. 自己写的拖拽文件至一个按钮上传的功能,前端及java代码如下: js ...

  9. PHP面向对象操作数据库--MySQLI类

    自学PHP,这几天学到了连接数据库,干脆把MySQLI的API全过一遍吧! MySQLI     代表PHP和Mysql数据库之间的一个连接.     1.mysqli::affected_rows ...

最新文章

  1. 小记,springboot项目中自己常用的logback配置文件
  2. 阿里云maven镜像地址
  3. 使用pip将Python包安装到不同的目录中?
  4. 计算勒让德多项式的系数
  5. 民生银行数据库智能运维的探索与实践
  6. web前端入门学习 css(2)
  7. ora-oracle,oracle:ora-01507错误
  8. vue添加html开启服务器_vue服务端渲染添加缓存
  9. linux安装 soapui_SOAP测试工具-SoapUI For Linux下载V5.2.1免费版-西西软件下载
  10. jquery中的ajax写法
  11. 数十年从事java工作的经验分享
  12. 常见知识库对比:DBpedia/Freebase/OpenCyc/Wikidata/YAGO3
  13. linux 批量监控软件,Linux/Unix/Windows批量管理监控服务器软件
  14. 一个读取3DS文件的类CLoad3DS浅析Ⅰ
  15. mysql auto increment offset_MySQL auto_increment_increment,auto_increment_offset 用法
  16. 恒温烙铁使用注意事项
  17. java课程设计(学生信息管理系统设计)+数据库
  18. 安装 CC2531 USB Dongle(驱动精灵)
  19. android x86主动防御,360手机卫士首家实现X86架构手机主动防御
  20. 关于 Juju 的十二个热点问题

热门文章

  1. Bzoj 3166 [Heoi2013] Alo 题解
  2. Hibernate - HHH000352: Unable to release batch statement
  3. SecureCRT使用小技巧
  4. python成长之路第三篇(2)_正则表达式
  5. WSS(Windows Storage Server)2008R2使用指南(三)配置及使用篇
  6. centos下yum升级python到2.6
  7. 在Ubuntu下rtorrent编译安装笔记
  8. 手动为linux系统添加新用户——过程详解
  9. cookie 和 session 区别
  10. 课时22:函数:递归是神马