zoukankan      html  css  js  c++  java
  • PDO访问数据库

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。

    PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,

    基于数据库使用的安全性,因为后者欠缺对于SQL资料隐码的防护。

    一、PDO连接数据库:

    1.造DSN,定义数据源:  驱动名:dbname=数据库名;host=服务器地址

    $dsn="mysql:dbname=mydb;host=localhost";

    2.造PDO对象:

    $pdo=new PDO($dsn."root","");

    3.写SQL语句:
    $sql="select * from Info";

    4.执行SQL语句:
      4.1 用query(),这种不常用,仅作了解。

        $v=$pdo->query($sql);

            //返回的对象比较特殊,可以直接用循环遍历:
              foreach ($v as $a)

        {

          echo $a[0];

        }

      4.2  预处理,先把SQL语句放到服务器上等待我们给它指令去执行

      //准备一条SQL语句:

      $stm=$po->prepare($sql);

      //执行准备好的SQL语句,成功返回true,失败返回false

      if($stm->execute())

      {

        //输出方式:

        //1.逐行取数据:

        $stm->fetch();

         里面可以写参数

           //var_dump($stm->fetch(PDO::FETCH_ASSOC));//关联数组
           //var_dump($stm->fetch(PDO::FETCH_BOTH));//都有
           //var_dump($stm->fetch(PDO::FETCH_NUM));//索引数组

        //2.取所有的数据,里面也可以写参数,同上:

        $stm->fetchAll();

        //3.取某一列,括号里面是索引:

        $stm->fetchcolumn(1);

        //4.返回对象:

        $stm->fetchObject();

        }

      else

      {

        echo "执行失败!";

        }

    二、修改SQL语句,添加数据:

      $dsn="mysql:dbname=mydb;host=localhost";
      $pdo=new PDO($dsn,"root","");

    1.方法一:直接使用添加的SQL语句
      $sql="insert into nation values ('p0001','张三')";
      $stm=$pdo->prepare($sql);
      if($stm->execute())
      {
        echo "执行成功";
      }
      else
      {
        echo "执行失败";
      }

    2.方法二:用?来代替参数,然后给参数绑定值(方法有些麻烦,一般不用)

      //用?来代替:

      $sql="insert into nation values (?,?)";

      $stm=$pdo->prepare($sql);

      //给参数绑定值:

      绑定值方法一:索引数组

      $stm->bindParam(1,$code);
      $stm->bindParam(2,$name);
      $code = "p100";
      $name = "回家";

      绑定值方法二:关联数组

      $stm->bindParam("code",$code,PDO::PARAM_STR);
      $stm->bindParam("name",$name,PDO::PARAM_STR);
      $code = "p102";
      $name = "回家";

      if($stm->execute())
      {
        echo "执行成功";
      }
      else
      {
        echo "执行失败";
      }

    3.方法三:数组方式

      $sql = "insert into Nation values(:code,:name)";

      $stm=$pdo->prepare($sql);

      //用数组方式来添加数值:

      方式一:索引数组

      $attr  = array("p101","很快");

      方式二:关联数组

      $attr  = array("code"=>"p103","name"=>"shj");

      if($stm->execute($attr))
      {
        echo "添加成功";
      }
      else
      {
        echo "添加失败";
      }

    4.方式四:$_POST,用表单的方式。

      //可另建一个页面建个表单

      <form action="test1.php" method="post">
      <input type="text" name="code" />
      <input type="text" name="name" />
      <input type="submit" value="添加" />

      </form>

    $dsn="mysql:dbname=mydb;host=localhost";

      $pdo=new PDO($dsn,"root","");

      $sql = "insert into Nation values(:code,:name)";

      $stm=$pdo->prepare($sql);

      if($stm->execute($_POST))
      {
        echo "添加成功";
      }
      else
      {
        echo "添加失败";
      }

  • 相关阅读:
    继承String?
    java sizeof
    什么是java序列化,如何实现java序列化?
    负载均衡的时候如何实现相同的session被分配到同一个服务器
    如何实现session共享
    java 字符串排序
    forward和redirect的区别
    数字签名 数字证书
    找出数组中重复次数最多的元素并打印
    get和post区别
  • 原文地址:https://www.cnblogs.com/HYL1003597280/p/6490927.html
Copyright © 2011-2022 走看看