PDO的数据库操作类

PDO的数据库教程操作类

 

 

=====================

 

/*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 返回数组
         1 返回单条记录
         2 返回行数
  string  $table   数据库表
  string  $fields   需要查询的数据库字段,允许为空,默认为查找全部
  string  $sqlwhere  查询条件,允许为空
  string  $orderby  排序,允许为空,默认为id倒序
  */
 function hrSelect($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="id desc"){
  global $pdo;
  if($debug){
   if($mode == 2){
    echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby";
   }elseif($mode == 1){
    echo "select $fields from $table where 1=1 $sqlwhere";
   }else{
    echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
   }
   exit;
  }else{
   if($mode == 2){
    $rs = $pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby");
    $return = $rs->fetchColumn();
   }elseif($mode == 1){
    $rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere");
    $return = $rs->fetch();
   }else{
    $rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
    $return = $rs->fetchAll();
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认insert,无返回信息
         1 返回执行条目数
         2 返回最后一次插入记录的id
  string  $table   数据库表
  string  $fields   需要插入数据库的字段
  string  $values   需要插入数据库的信息,必须与$fields一一对应
 */
 function hrInsert($debug, $mode, $table, $fields, $values){
  global $pdo;
  if($debug){
   echo "insert into $table ($fields) values ($values)";
   exit;
  }else{
   if($mode == 2){
    $return = $pdo->lastInsertId("insert into $table ($fields) values ($values)");
   }elseif($mode == 1){
    $return = $pdo->exec("insert into $table ($fields) values ($values)");
   }else{
    $pdo->query("insert into $table ($fields) values ($values)");
    exit;
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认update,无返回信息
         1 返回执行条目数
  string  $table   数据库表
  string  $set   需要更新的字段及内容,格式:a='abc',b=2,c='2010-10-10 10:10:10'
  string  $sqlwhere  修改条件,允许为空
 */
 function hrUpdate($debug, $mode, $table, $set, $sqlwhere=""){
  global $pdo;
  if($debug){
   echo "update $table set $set where 1=1 $sqlwhere";
   exit;
  }else{
   if($mode==1){
    $return = $pdo->exec("update $table set $set where 1=1 $sqlwhere");
   }else{
    $pdo->query("update $table set $set where 1=1 $sqlwhere");
    exit;
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认delete,无返回信息
         1 返回执行条目数
  string  $table   数据库表
  string  $sqlwhere  删除条件,允许为空
 */
 function hrDelete($debug, $mode, $table, $sqlwhere=""){
  global $pdo;
  if($debug){
   echo "delete from $table where 1=1 $sqlwhere";
   exit;
  }else{
   if($mode == 1){
    $return = $pdo->exec("delete from $table where 1=1 $sqlwhere");
   }else{
    $pdo->query("delete from $table where 1=1 $sqlwhere");
    exit;
   }
   return $return;
  }
 }
?>
  另外一段代码是基于我这个数据库操作类的事务实例:

 /*
  注意,数据库操作表类型必须为InnoDB,其他类型不支持事务
  PDO事务机制
  $pdo->beginTransaction(); --开启事务
  $pdo->commit();    --结束事务
  $pdo->rollBack();   --回滚操作
  
  示例,用try/catch包住db操作,当事务内的db操作出现中断,则执行回滚并抛出异常信息。
 */
 try{
  $pdo->beginTransaction();
  hrInsert(0,1,"class","name,parentid","'god',0"); //可以正常执行
  hrInsert(0,0,0,"tb_searchlog","userid,code","4"); //出错
  $pdo->commit();
 }catch(Exception $e){
  $pdo->rollBack();
  echo "Failed: " . $e->getMessage();
 }

时间: 2024-12-26 18:29:02

PDO的数据库操作类的相关文章

php pdo mysql数据库操作类

原文:php pdo mysql数据库操作类   findAll(array( 'field'=>'ID,albumName,albumImage, mainActor,directors,tags,info,area, keywords,wflag,year,mod_version,totalDuration', 'where'=>$where, 'order'=>'flag desc,hit_count desc', 'limit'=>"{$limit['offset

一个基于PDO的数据库操作类(新) 一个PDO事务实例

复制代码 代码如下: <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 * 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出sql语句 int $mode 0 返回数组 1 返回

一个基于PDO的数据库操作类

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白. 既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见. 复制代码 代码如下: <?php /* 作者:胡睿 日期:2011/03/19 电邮:hooray0905@foxmail.com 20110319 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 */ /* 参数

一个基于PDO的数据库操作类_php技巧

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白. 既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见. 复制代码 代码如下: <?php /* 作者:胡睿 日期:2011/03/19 电邮:hooray0905@foxmail.com 20110319 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 */ /* 参数

一个基于PDO的数据库操作类(新) 一个PDO事务实例_php技巧

复制代码 代码如下: <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 * 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出sql语句 int $mode 0 返回数组 1 返回

数据库操作类mysql/mysqli/pdo

PDO,MySQL,MYSQLI的各自不同介绍,PDO,MYSQL,MYSQLI 性能哪个比较好 普通的mysql连接肯定是会被抛弃的 因为每次都要防止sql注入的问题 而且相对来说比较慢 首先, mysqli 连接是永久连接,而mysql是非永久连接 .什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力. mysqli是在普通mysql的基础上做的一次优化说实话很成功 预处理方式完全解决了sql注入的

PHP实现PDO的mysql数据库操作类_php技巧

本文实例讲述了PHP实现PDO的mysql数据库操作类.分享给大家供大家参考.具体分析如下: dbconfig类负责配置数据库访问信息,包括:服务器地址.端口.数据库实例名.用户名.用户密码.字符集等. dbtemplate类集合了对数据库的访问操作,主要有以下几个操作: 1. queryrows:返回多行记录 2. queryrow:返回为单条记录 3. queryforint:查询单字段,返回整数 4. queryforfloat:查询单字段,返回浮点数(float) 5. queryfor

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

[原创] EasyASP v1.5简化ASP开发,包含数据库操作类

EasyASP v1.5简化ASP开发,包含数据库操作类 EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作.目前只提供了VBScript版,JScript版将来可能会提供.详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例. 源码