zoukankan      html  css  js  c++  java
  • PDO数据访问抽象层(下)

    PDO两大功能

    一、事务功能

    PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作

    1、造对象

    1
    2
    3
    4
    <?php
    $dsn "mysql:dbname=crud;host=localhost";
    $pdo new PDO($dsn,"root","123");
    ?>

    2、设置异常模式

    1
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

    3、开始写事务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try{
        $pdo->beginTransaction();//开启事务
        $sql "insert into nation values('n001','神族')";//数据库中有n001
        $sql1 "insert into nation values('n005','人族')";//一条错误全都失败不添加
        $pdo->query($sql);
        $pdo->query($sql1);
    }catch(Exception $e){
        //抓住出现的错误,并且处理
        echo $e->getMessage();//获取异常信息;
        //回滚到最开始
        $pdo->rollBack();
    }

     主键重复

    二、防止SQL注入攻击

    1、?占位符:数组必须是索引数组

    SQL语句里需要加占位符

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $dsn "mysql:dbname=crud;host=localhost";
    $pdo new PDO($dsn,"root","123");
    $sql "insert into nation values(?,?)";
    $st $pdo->prepare($sql);//讲sql语句放到服务器等待执行
    $attr array("n005","人族");
    $st->execute($attr);
    ?>

     

    2、字符串方式:数组必须是关联数组

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $dsn "mysql:dbname=crud;host=localhost";
    $pdo new PDO($dsn,"root","123");
    $sql "insert into nation values(:code,:name)";
    $st $pdo->prepare($sql);//讲sql语句放到服务器等待执行
    $attr array("code"=>"n006","name"=>"神族");//关联数组
    $st->execute($attr);
    ?>

     

  • 相关阅读:
    <<程序员>> 杂志网站
    插入排序
    冒泡排序
    TCP/IP编程实现远程文件传输
    选择排序
    防止基础表数据变动,导致相关的历史记录数据产生变动的解决方案
    发布一个RSS辅助类
    感谢jquery和firebug,让我也终于敢于写javascript了
    DevExpress ASPxGridView 使用文档四:数据源
    DevExpress ASPxGridView 使用文档六:模板
  • 原文地址:https://www.cnblogs.com/palpitate/p/8371201.html
Copyright © 2011-2022 走看看