zoukankan      html  css  js  c++  java
  • PDO控制、连接数据库

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL资料隐码的防护。

    PDO是连接数据库的另一种方法,之前用到的是mysqli,PDO 不是单纯的连接musql数据库,还可以连接到sqlserve oracl等等数据库,用起来更方便一些。

    PDO 一个最大的特点就是具有事务性, 主要运用在财务方面,在执行的时候是一起通过,或者一起出现异常的,比如财务在转账过程中,一处的财务增加了,那么另一处的财务肯定会有所减少,运用PDO 就可以避免出现一处财务

    增加了,而另一处财务没有减少的情况。

    并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器。PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层。

     1 <?php
     2 //创建对象
     3 $dsn="mysql:dbname=test;host=localhost;";
     4 
     5 $pdo=new PDO($dsn,"root","root");
     6 
     7 //将PDO的错误类型设置为异常模式
     8 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
     9 
    10 try{
    11     //开启事务
    12     $pdo->beginTransaction();
    13 
    14 $sql1="insert into score VALUES  ('110','3-215','90') ";
    15 $sql2="insert into score VALUES ('111','3-215','92')";   //这两条语句是一起执行的,如果出错,这两条语句都是无法执行的
    16 
    17     $pdo->exec($sql1);  //如果是select语句  用query()调用就可以了
    18     $pdo->exec($sql2);
    19 
    20     //提交事务
    21     $pdo->commit();
    22 }
    23 catch(Exception $e)
    24 {   //回滚操作
    25     $pdo->rollBack();
    26 }
    ?>

    未操作前的数据库 操作后的数据库(提交事务后是一起出现在数据库的)

    如果是添加大批量的数据的时候,用上面的方法写起来可能会比较麻烦一些, 下面是比较简单的方法,运用数组的模式来写

     1 //创建对象
     2 $dsn="mysql:dbname=test;host=localhost";
     3 $pdo=new PDO($dsn,"root","root");
     4 //预处理SQL语句
     5 $sql="insert into score VALUES (:sno,:cno,:degree)";
     6 $stem=$pdo->prepare($sql);
     7 
     8 //造一个数组
     9 $arr=array("sno"=>"120","cno"=>"95033","degree"=>88);
    10 
    11 //执行
    12 $stem->execute($arr);

    下面是举例说明这种方法的简单之处:写一个添加页面和其处理页面

     1 //这是添加页面
     2 <body>
     3 <h1>添加页面</h1>
     4 <form action="pdoadd.php" method="post">
     5     <div>学号:<input type="text" name="sno"/></div>
     6     <div>班级:<input type="text" name="cno"/></div>
     7     <div>成绩:<input type="text" name="degree"/></div>
     8     <div><input type="submit" value="添加"/></div>
     9 </form>
    10 </body>

    显示如图

     1 //这是添加处理页面
     2 <?php
     3 $dsn="mysql:dbname=test;host=localhost";
     4 $pdo=new PDO($dsn,"root","root");
     5 //预处理语句
     6 $sql="insert into score VALUES (:sno,:cno,:degree)";
     7 $tem=$pdo->prepare($sql);
     8 //执行
     9 $tem->execute($_POST);
    10 ?>

    从添加的处理页面可以看出,用pdo来处理相对于mysqli来处理要简单一些的

  • 相关阅读:
    Docker宿主机管理
    Docker常用命令
    Maven专题4——Maven测试
    Spring Boot 2.x 之 Logging
    spark高可用集群搭建立
    elastic插件安装
    单实例安装elastic和启动报错解决
    使用Turbine对集群进行监控
    Centos安装mysql5.6.33
    Centos6安装破解JIRA7.3.8
  • 原文地址:https://www.cnblogs.com/xiaodouding/p/6489466.html
Copyright © 2011-2022 走看看