PHP::PDO交互数据函数封装(一)

PDO数据连接封装

<?php

$pdo = null;
function get_pdo()

{

  global $pdo;                             //  突破作用域

  if (is_object($pdo) == false) {           // 当$pdo 为 pdo对象时 返回$pdo; 否者创建$PDO 

    $conn = 'mysql:host=localhost; port=3306; dbname=lx; ';

    $usr = 'root';

    $pwd = 'root';

    //1.2 创建PDO对象

    $pdo = new PDO($conn, $usr, $pwd);

    //   连接数据库

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   //设置属性 抛出异常

    $pdo->query('set names utf8');           // 设置编码

  }

  return $pdo;

}

// 增、删、改 语句函数封装
function get_count($get_pdo, $g)

{

  return $get_pdo->exec($g);                //返回受影响行数

}
// 查询语句 函数封装
function get_result($get_pdo, $g)

{

  $cx = $get_pdo->query($g);    			//  查询语句

  return $cx->fetchAll(PDO::FETCH_ASSOC);                                //返回结果;

}
//绑定数据的 函数封装
function show($pdo, $query, $data)

{

  {$item = $pdo->prepare($query);    // 预防SQL注入

  }// 创建预定义

  foreach ($data as $key => $val) {$item->bindvalue($key + 1, $val);

  }

  $item->execute();

  return $item;

}
// 突破作用域的简化 数据绑定封装
function get_stmt($sql, array $row = [])

{

  try {$pdo = get_pdo();$item = $pdo->prepare($sql);foreach ($row as $key => $val) {// $item->bindvalue(":$key", $val);               //绑定数组的 标记为KEY,值为vaL;$item->bindvalue($key + 1, $val);}$item->execute();return $item;

  } catch (PDOException $e) {echo "你的数据有错误:" . $e->getMessage();   //错误异常处理return false;

  }

};
// 封装对数据的输出方式与类型
function get_open($sql, array $row = [], $dType = 2, $rType = 'array')

{

  $item = get_stmt($sql, $row);

  $item->execute();

  switch ($dType) {          // 匹配数据的输出方式

    case 0:

      return $item->rowcount();

    case 1:

      return $item->fetch($rType == 'array' ? PDO::FETCH_ASSOC : PDO::FETCH_OBJ);

    case 2:

      return $item->fetchall($rType == 'array' ? PDO::FETCH_ASSOC : PDO::FETCH_OBJ);

  }

  return $item;

}

猜你喜欢

转载自blog.csdn.net/weixin_41717244/article/details/83958648
今日推荐