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中使用xmlreader读取xml数据示例
Dec 29 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
Laravel框架验证码类用法实例分析
Sep 11 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 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP 断点续传实例详解
2017/11/11 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
element-ui中按需引入的实现
2019/12/25 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
super关键字的用法
2012/04/10 面试题
合作合同协议书范本
2015/01/27 职场文书
小班下学期个人总结
2015/02/12 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
运动会宣传语
2015/07/13 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书