PHP的PDO操作简单示例


Posted in PHP onMarch 30, 2016

本文实例讲述了PHP的简单PDO操作。分享给大家供大家参考,具体如下:

网上关于PDO的资料很多。这里就不累赘了。

这里我将PDO所有操作封装到一个类里方便操作。

类代码如下:

class DB {
  //pdo对象
  public $con = NULL;
  function DB()
  {
    $this->con = new PDO("mysql:host=127.0.0.1;dbname=dbtest", "root", "xxx", array(
      PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES `utf8`',
      PDO::ATTR_PERSISTENT => TRUE,
    ));
    $this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $this->con->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
  }
  public function query($sql, $para = NULL)
  {
    $sqlType = strtoupper(substr($sql, 0, 6));
    $cmd = $this->con->prepare($sql);
    if($para != NULL)
    {
      $cmd->execute($para);
    }
    else
    {
      $cmd->execute();
    }
    if($sqlType == "SELECT")
    {
      return $cmd->fetchAll(); 
    }
    if($sqlType == "INSERT")
    {
      return $this->con->lastInsertId();
    }
    return $cmd->rowCount();
  }
}

使用方法:

include "pdo.php";
$db = new DB();
$subjectList = $db->query("SELECT * FROM `table1`");
$count = $db->query("UPDATE `table1` SET `name` = 'test' WHERE `id` = :id", array(':id' => 795));
try
{
  echo $db->con->beginTransaction();
  $count = $db->con->exec("UPDATE `table1` SET `name` = 'test1' WHERE `id` = 795");
  $count = $db->con->exec("UPDATE `table1` SET `name1` = 'test22' WHERE `id` = 795");
  $count = $db->con->exec("UPDATE `table1` SET `name1` = 'test333' WHERE `id` = 795");
  echo $db->con->commit();
}
catch (Exception $e)
{
  // MYSQL 的表类型 InnoDB(支持事务) MyISAM(不支持事务)
  echo $db->con->rollBack();
  throw new MyException("事务测试错误", $e);
}
$db = NULL;

PDO支持SQL语句以参数方式调用,可有效的防止SQL注入。

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

PHP 相关文章推荐
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
PHP一些有意思的小区别
Dec 06 PHP
php执行sql语句的写法
Mar 10 PHP
php array_map()数组函数使用说明
Jul 12 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
微信access_token的获取开发示例
Apr 16 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
PHP Smarty模版简单使用方法
Mar 30 #PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 #PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 #PHP
PHP记录页面停留时间的方法
Mar 30 #PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 #PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 #PHP
Laravel路由设定和子路由设定实例分析
Mar 30 #PHP
You might like
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
python无序链表删除重复项的方法
2020/01/17 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
python爬取微博评论的实例讲解
2021/01/15 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
2015年爱牙日活动总结
2015/02/05 职场文书
子女赡养老人协议书
2016/03/23 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript