zoukankan      html  css  js  c++  java
  • PHP 数据库抽象层pdo

    PDO是PHP数据对象(PHP Data Object)的缩写。

    pdo就是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,能够轻松地在不同数据库之间进行切换,使得数据库间地移植容易实现。

    pdo自带事务功能,并且可以防止sql注入。

    PDO
    //1.访问不同的数据库
    //2.自带事务功能
    //3.防止SQL注入

    /*//1.造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","123");

    //2.写SQL语句
    $sql = "update nation set name='兽族' where code='n013'";

    //3.执行SQL语句
    //$r = $pdo->query($sql);
    $r = $pdo->exec($sql);*/

    //事务功能
    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","123");

    //设置异常模式
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);


    //写SQL语句
    $sql1 = "insert into nation values('n016','人族')";
    $sql2 = "insert into nation values('n017','不死族')";

    //执行两条SQL语句
    try
    {
     //启动事务
     $pdo->beginTransaction();
     
     $pdo->exec($sql1);
     $pdo->exec($sql2);
     
     //提交事务
     $pdo->commit();
    }
    catch(PDOException $e)
    {
     //$e->getMessage();
     //回滚
     $pdo->rollBack();
    }

    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","123");

    //写SQL语句,预处理语句
    $sql = "insert into nation values(?,?)";

    //准备SQL语句,返回statement对象
    $st = $pdo->prepare($sql);

    //绑定参数
    /*$st->bindParam(1,$code);
    $st->bindParam(2,$name);

    $code="n022";
    $name="矮人族";*/

    $attr = array("n023","魔族");

    //提交执行,不用给SQL语句了,已经传过去了
    var_dump($st->execute($attr));


    //预处理语句里面用?占位的,给数组的时候要给索引数

    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","123");

    //写SQL语句,预处理语句
    $sql = "select * from nation";

    //准备执行
    $st = $pdo->prepare($sql);

    //执行
    $st->execute();

    //读数据
    var_dump($st->fetchAll(PDO::FETCH_ASSOC));

  • 相关阅读:
    STM32-M0中断优先级介绍
    source insight之quicker.em宏的使用
    LORA---关于LORA的30个常见问题解答
    【原创】Mac上编译Hadoop1.0.3出现的一些问题
    Mac中下载JDK手动更新出现“只支持10.7.3以上的系统版本”问题解决方案
    【Java基础】Java内部类
    【Java基础】Java类及成员和修饰符的关系
    【Java基础】Java接口的总结
    【Java基础】抽象类和抽象方法的总结
    【Java基础】Java中的多态
  • 原文地址:https://www.cnblogs.com/bujianchenxi/p/6054855.html
Copyright © 2011-2022 走看看