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的网址
Nov 25 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 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
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
javascript制作2048游戏
2015/03/30 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
pycharm配置git(图文教程)
2019/08/16 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
python爬虫实现获取下一页代码
2020/03/13 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
python如何调用java类
2020/07/05 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
销售人员自我评价怎么写
2013/09/19 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
卫生系统先进事迹
2014/05/13 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
本溪水洞导游词
2015/02/11 职场文书