博客列表 >pdo预处理的增删改查--4.26日作业

pdo预处理的增删改查--4.26日作业

吴明的博客
吴明的博客原创
2018年04月30日 00:59:511051浏览
  1. 增加记录条数

    sql拼接语句时一定要注意空格,语句的规范性检查,array_keys/rtrim/prepare/bindValue/execute/rowCount  这些函数的使用

  2. 更新记录

        更新的条件不能为空,其余和新增插入类似

    3、记录查询,分为查询单条和多条,sql 语句写法有些差异,PDO执行时 单条记录和多条记录查询韩数分别是

$stmt ->setFetchModel(PDO::FETCH_ASSOC);返回值为:$stmt->fetch

    4删除的执行操作也是条件不能为空。

<?php

//连接数据库

$dsn = "mysql:host=localhost;dbname=php;charset=utf8;port=3306";

$userName = "root";

$password = "";

try{

  $pdo = new PDO($dsn,$userName,$password);

}catch(PDOException $e){

print'connect_error:'.$e->getMessage();

//exit();

}

//新增数据

 if(!function_exists('insert')){

  function insert($pdo,$table,$data=[]){

  //创建sql语句

  $sql = "INSERT IGNORE {$table} SET ";

  foreach( array_keys($data) as $field){

  $sql .= $field .'=:'.$field.',';

  }

  //去掉尾部逗号,并添加分号结束

  $sql = rtrim(trim($sql),',').';';

  //创建pdo预处理对象

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

  //绑定参数到预处理对象

  foreach($data as $field=>$value){

  $stmt ->bindValue(":$field",$value);

  }

  //执行新操作

  if($stmt->execute()){

  if($stmt->rowCount()>0){

  return true;

  }

  }else{

  return false;

  }

 

  }

 }

 //更新数据

 if(!function_exists('uptate')){

  function uptate($pdo,$table,$data=[],$where="")

  //创建sql语句

  {$sql = "UPTATE {$table} SET ";

  foreach(array_keys($data) as $field){

  $sql .=$field.':'.$field","

  }

  //去掉结尾的逗号

  $sql= rtrim(trim($sql),',');

  //添加更新条件

  if(!empty($where)) {

            $sql .= ' WHERE '. $where;

        }else{

            exit('条件不能为空');

        }

        //创建参数到预处理对象

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

         foreach($data as $field=>$value){

          $stmt->bindValue(":{$field}".$value);

         }

         if($stmt->execute())

         {

          if($stmt->rowCount()>0)

          {

          return true

          }

         }else{

          return false;

         }

    }

 }

 //查询单条记录

 if(!function_exists('find')){

  function find($pdo,$table,$fields,$where='')

  {

  $sql = 'SELECT';

  if(is_array($fields)){

  foreach($fields as $field){

  $sql .= $fields.','

  }

  }else{

  $sql .= $fields;

  }

  $sql = rtrim(trim($sql),',');

  $sql .= 'FROM'.$table;

  //添加查询条件

  if(!empty($where))

  {

  $sql .= ' WHERE'.$where;

  }

  $sql .= ' LIMIT 1';

  //sql语句拼装

  $sql = rtrim(trim(),',');

  $stmt =  $pdo ->prepare();

  //执行查询操作

  if($stmt ->execute()

  {

  if($stmt-rowCount()>0)

  {

  //return true;

  $stmt ->setFetchMode({PDO ::FETCH_ASSOC )

  {

  return $stmtAll();

 

  }

  }else{

  return false;

  }

  }

 }



 //多条记录查询

 if (!function_exists('select')) {


    function select($pdo,$table,$fields, $where='', $order='') {

        //创建SQL语句

        $sql = 'SELECT ';

        if (is_array($fields)) {

            foreach ($fields as $field) {

                $sql .= $field.', ';

            }

        } else {

            $sql .= $fields;

        }


        $sql = rtrim(trim($sql),',');

        $sql .= '  FROM '.$table;

        //添加查询条件

        if(!empty($where)) {

            $sql .= '  WHERE '. $where;

        }


        //添加排序条件

        if(!empty($order)) {

            $sql .= ' order by '.$order;

        }


        //去掉尾部逗号,并添加分号结束

        $sql = rtrim(trim($sql),',').';';


        //创建PDO预处理对象

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


        //执行查询操作

        if($stmt->execute()){

            if($stmt->rowCount()>0){

                $stmt->setFetchMode(PDO::FETCH_ASSOC);

                //返回一个二维数组

                return $stmt->fetchAll();

            }

        } else {

            return false;

        }

    }

}


//删除数据

if (!function_exists('delete')) {

   

    function delete($pdo,$table, $where='') {

        //创建SQL语句

        $sql = "DELETE FROM {$table}  ";

        //添加删除条件

        if(!empty($where)) {

            $sql .= 'WHERE '. $where;

        }else{

            exit('条件不能为空');

        }

        //去掉尾部逗号,并添加分号结束

        $sql = rtrim(trim($sql),',').';';


        //创建PDO预处理对象

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


        //执行删除操作

        if($stmt->execute()){

            if($stmt->rowCount()>0){

                return true;

            }

        } else {

            return false;

        }

    }

}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议