zoukankan      html  css  js  c++  java
  • php PDO预处理

     PDOStatement类:准备语句,处理结果集

    也就是预处理,安全,高效,推荐使用

    两种占位符号:?参数 索引数组,按索引顺序使用

    名子参数 关联数组,按名称使用,和顺序无关,以冒号开头,自己定义

    $stmt=$pdo->prepare($sql); $sql可是是任意sql语句,这与mysqli不同

    两种点位符号

    try{
    
      $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
    
    }catch(PDOException $e){
    
      echo $e->getMessage();
    
    }
    
     
    
    //准备一条语句,并放到服务器端,而且编译
    
    $stmt=$pdo->prepare("insert into shop(name,price)values(?,?)");
    
    // $stmt=$pdo->prepare("insert into shop(name,price)values(:na,:pr)");
    
     
    
    //绑定参数(变量和参数绑定)
    
    $stmt->bindparam(1,$name);
    
    $stmt->bindparam(2,$price);
    
    // $stmt->bindparam(":na",$name);
    
    // $stmt->bindparam(":pr",$price);
    
     
    
    $name="liwu11";
    
    $price=234.4311;
    
     
    
    if($stmt->execute()){
    
      echo "执行成功";
    
      echo "最后插入的ID:".$pdo->lastInsertId();
    
    }else{
    
      echo "执行失败";
    
    }
    
    ?>
    
    //以数组方式向服务器传值
    
    try{
    
      $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
    
    }catch(PDOException $e){
    
      echo $e->getMessage();
    
    }
    
     
    
    $stmt=$pdo->prepare("select * from shop where id >:id");
    
     
    
    $stmt->execute(array(':id'=>130));
    
     
    
    $row=$stmt->fetch();
    
    print_r($row);
    
     
    
    //用fetch(),fetchAll()来获取查询结果
    
    try{
    
      $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
    
    }catch(PDOException $e){
      
      echo $e->getMessage();
    
    }
    
    $stmt=$pdo->prepare("select * from shop where id >:id");
    
     
    
    $stmt->execute(array(':id'=>130));
    
    /* 单条获取fetch()
    
    $stmt->setFetchMode(PDO::FETCH_ASSOC); //设置获取模式
    
    while($row=$stmt->fetch()){
    
      print_r($row);
    
    }
    
    */
    
     
    
    try{
    
      $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
    
    }catch(PDOException $e){
    
        echo $e->getMessage();
    }
    
    $stmt=$pdo->prepare("select * from shop where id >:id");
    
     
    $stmt->execute(array(':id'=>130));
    
    /* 单条获取fetch()
    
    $stmt->setFetchMode(PDO::FETCH_ASSOC); //设置获取模式
    
    while($row=$stmt->fetch()){
    
      print_r($row);
    
    }
    
    */
    
     
    //多条获取fetchAll()
    
    // $stmt->setFetchMode(PDO::FETCH_ASSOC);
    
    $data=$stmt->fetchAll(PDO::FETCH_ASSOC); //也可以用上句进行设置
    
    print_r($data);
    
     
    //以表格输出查询结果
    
     
    try{
        $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
    }catch(PDOException $e){
        echo $e->getMessage();
    }
    
    
    $stmt=$pdo->prepare("select id,name,price from shop where id >:id");
    
    
    $stmt->execute(array(':id'=>130));
    
    $stmt->bindColumn(id,$id);
    
    $stmt->bindColumn(name,$name);
    
    $stmt->bindColumn(price,$price);
    
     
    
    for($i=0;$i<$stmt->columncount();$i++){
    
      $field=$stmt->getColumnMeta($i);
    
    }
    
    while($stmt->fetch()){
    
     
    }
    
    echo "行:".stmt->rowcount()."";
    
    echo "列:".stmt->columncount()."";
    
    ?>
    
     

    二、PDO事务提交

  • 相关阅读:
    SpringBoot标准化搭建
    springboot打开swagger文档遇到For input string: ""的报错 swagger版本2.9.2
    MySQL和Redis如何保证数据一致性? 三种方案对比,初版
    [转]QUdpSocket收发信息
    [原][C++][插件]window下C++简单插件机制实现
    php saas 架构设计,SaaS的几种架构解析
    如何处理将HTML打印出来中的断行,分页,修改打印内容等问题?急,谢谢!!
    批量打印 | 多页打印 | PHP多页打印
    web页面的单页打印以及批量打印实现方法
    php批量打印发票三(php用FPDF合并所有图片为PDF文档)
  • 原文地址:https://www.cnblogs.com/shenmiyang/p/14989895.html
Copyright © 2011-2022 走看看