zoukankan      html  css  js  c++  java
  • php数据访问数据层

    数据访问pdo抽象层

    方法一:比较简单点:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>PDO方法1整理</title>
    </head>
     
    <body>
    <?php
    //造DSN 格式为:驱动名:dbname=数据库名;host=服务器地址
    $dsn = "mysql:dbname=mydb;host=localhost";
     
    //造PDO对象
    $pdo = new PDO($dsn,"root","");
     
    //写SQL语句
    $sql = "select * from Info";
     
    /*//执行SQL语句   可以但是一般不用
    $v = $pdo->query($sql);
    //返回的对象比较特殊,可以直接用循环遍历
    foreach($v as $a)
    {
        echo $a[0];
    }*/
     
    //预处理,先把SQL语句放到服务器上等待我们给他指令去执行
    //准备一条SQL语句,返回PDO对象
    $stm = $pdo->prepare($sql);
     
    //执行准备好的SQL语句,成功返回true,失败返回false
    if($stm->execute())
    {
        //输出的方式
        //1.逐行取数据
        //var_dump($stm->fetch());//读取的数据有索引也有关联数组,
        //里面可以写参数
        //var_dump($stm->fetch(PDO::FETCH_ASSOC));//关联数组
        //var_dump($stm->fetch(PDO::FETCH_BOTH));//都有
        //var_dump($stm->fetch(PDO::FETCH_NUM));//索引数组
         
        //2.读取所有的数据
        //var_dump($stm->fetchAll());//参数同上
         
        //3.读取某一列
        //var_dump($stm->fetchColumn(1));//里面是索引
         
        //4.返回对象
        //var_dump($stm->fetchObject());
    }
    else
    {
        echo "执行失败";   
    }
    ?>
     
    </body>
    </html>
     
     
    注意pdo中的输出方式:

    逐行读取数据-----$stm->fetch();      #包含索引数组和关联数组

    读取全部数据-----$stm->fetchAll();   #包含索引数组和关联数组

    括号里面可以写参数的,两个的方法都是一样的,常见的有:

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

    返回某一列-----$stm->fetchColumn(1);        #里面是索引

    返回对象-------$stm->fetchObject();

    方法2:以添加数据举例,分为两种,索引数组和关联数组

    索引数组:

    <title>PDO方法2整理</title>
    </head>
     
    <body>
    <?php
    //索引数组
     
    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","");
     
    //写SQL语句
    //$sql = "insert into Nation values(?,?)";
     
    //预处理
    $stm = $pdo->prepare($sql);
     
    //给参数绑定值,较为麻烦不建议
    /*$stm->bindParam(1,$code);
    $stm->bindParam(2,$name);
    $code = "p002";
    $name = "回k";*/
     
    //造数组
    $attr = array("p111","张三");
     
    //执行
    if($stm->execute($attr))
    {
        echo "添加成功";   
    }
    else
    {
        echo "添加失败";   
    }
    ?>
     
    </body>
    </html>
      关联数组
    
    <title>PDO方法2整理</title>
    </head>
     
    <body>
     
    <?php
    //关联数组
    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","");
     
    //写SQL语句
    $sql = "insert into Nation values(:code,:name)";
     
    //预处理
    $stm = $pdo->prepare($sql);
     
    //给参数绑定值,麻烦不建议
    /*$stm->bindParam("code",$code,PDO::PARAM_STR);
    $stm->bindParam("name",$name,PDO::PARAM_STR);
    $code = "p003";
    $name = "aaaa";
    */
     
    //造数组
    $attr = array("code"=>"p005","name"=>"bbbb");
     
    //执行
    if($stm->execute($attr))
    {
    echo"添加成功";
    }
    else
    {
    echo "添加失败";   
    }
    ?>
     
    </body>
    </html>

    另一种方法是利用表单的,更加方便,都可以使用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
     
    <body>
    <form action="pdo2.php" method="post">
    <div>代号:<input type="text" name="code" /></div><br />
     
    <div>名称:<input type="text" name="name" /></div><br />
     
    <div><input type="submit" value="提交" /></div>
    </form>
    </body>
    </html>



    <title>PDO方法2整理</title>
    </head>
     
    <body>
     
    <?php
    //关联数组
    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","");
     
    //写SQL语句
    $sql = "insert into Nation values(:code,:name)";
     
    //预处理
    $stm = $pdo->prepare($sql);
     
    //执行
    if($stm->execute($_POST))
    {
        echo "添加成功";
    }
    else
    {
        echo "添加失败";   
    }
    ?>
    </body>
    </html>
     
  • 相关阅读:
    解决Prism的EventAggregator的事件订阅错误
    解决Prism中Region的GetView不起作用问题
    怎样成为一个高手
    排球比赛积分规则
    个人作业
    个人作业
    会议总结
    个人总结
    本周冲刺
    本周个人总结
  • 原文地址:https://www.cnblogs.com/xingfudehuanyan/p/5493388.html
Copyright © 2011-2022 走看看