[PHP] php 封装PDO 类 →→→→→进入此内容的聊天室

来自 , 2019-09-28, 写在 PHP, 查看 140 次.
URL http://www.code666.cn/view/1bd4b29a
  1. class PdoHelper {
  2.  
  3.     private $dsn;
  4.     private $usn;
  5.     private $pwd;
  6.     private $options;
  7.  
  8.     function __construct($dsn, $usn, $pwd, $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')) {
  9.         $this->dsn = $dsn;
  10.         $this->usn = $usn;
  11.         $this->pwd = $pwd;
  12.         $this->options = $options;
  13.     }
  14.  
  15.     public function GetPDOStatement() {
  16.         return new PDO($this->dsn, $this->usn, $this->pwd, $this->options);
  17.     }
  18.  
  19.     //获得数据集
  20.     public function GetData($sql, $parames = array()) {
  21.         $dbh = $this->GetPDOStatement();
  22.  
  23.         if (count($parames) > 0) {
  24.             $stmt = $dbh->prepare($sql);
  25.  
  26.             $keys = array_keys($parames);
  27.  
  28.             foreach ($keys as $key) {
  29.                 $stmt->bindValue($key, $parames[$key]);
  30.             }
  31.  
  32.             $stmt->execute();
  33.  
  34.             return $stmt->fetchAll();
  35.         } else {
  36.             $query = $dbh->query($sql);
  37.             if ($query) {
  38.                 return $query->fetchAll();
  39.             }
  40.         }
  41.  
  42.         return FALSE;
  43.     }
  44.  
  45.     //获得数据行
  46.     public function GetRow($sql, $parames = array()) {
  47.         $dbh = $this->GetPDOStatement();
  48.         if (count($parames) > 0) {
  49.             $stmt = $dbh->prepare($sql);
  50.  
  51.             $keys = array_keys($parames);
  52.             foreach ($keys as $key) {
  53.                 $stmt->bindValue($key, $parames[$key]);
  54.             }
  55.  
  56.             $stmt->execute();
  57.             return $stmt->fetch();
  58.         } else {
  59.             $query = $dbh->query($sql);
  60.  
  61.             if ($query) {
  62.                 return $query->fetch();
  63.             }
  64.         }
  65.  
  66.         return FALSE;
  67.     }
  68.  
  69.     //获得一个值
  70.     public function GetValue($sql, $parames = array()) {
  71.         $dbh = $this->GetPDOStatement();
  72.  
  73.         if (count($parames) > 0) {
  74.             $stmt = $dbh->prepare($sql);
  75.             $keys = array_keys($parames);
  76.             foreach ($keys as $key) {
  77.                 $stmt->bindValue($key, $parames[$key]);
  78.             }
  79.  
  80.             $stmt->execute();
  81.  
  82.             return $stmt->fetchColumn();
  83.         } else {
  84.             $query = $dbh->query($sql);
  85.  
  86.             if ($query) {
  87.                 return $query->fetchColumn();
  88.             }
  89.         }
  90.  
  91.         return FALSE;
  92.     }
  93.  
  94.     //执行一条查询
  95.     public function Execute($sql, $parames = array()) {
  96.         $dbh = $this->GetPDOStatement();
  97.  
  98.         if (count($parames) > 0) {
  99.             $stmt = $dbh->prepare($sql);
  100.             $keys = array_keys($parames);
  101.             foreach ($keys as $key) {
  102.                 $stmt->bindValue($key, $parames[$key]);
  103.             }
  104.  
  105.             return $stmt->execute();
  106.         } else {
  107.             return $dbh->exec($sql);
  108.         }
  109.     }
  110.  
  111.     //执行插入 并且返回最后插入的ID
  112.     public function InsertDataGetLastID($sql, $parames = array()) {
  113.         $dbh = $this->GetPDOStatement();
  114.         if (count($parames) > 0) {
  115.             $stmt = $dbh->prepare($sql);
  116.             $keys = array_keys($parames);
  117.             foreach ($keys as $key) {
  118.                 $stmt->bindValue($key, $parames[$key]);
  119.             }
  120.             $stmt->execute();
  121.             return $dbh->lastInsertId();
  122.         } else {
  123.  
  124.             $dbh->exec($sql);
  125.             return $dbh->lastInsertId();
  126.         }
  127.     }
  128.  
  129. }
  130.  
  131.  

回复 "php 封装PDO 类"

这儿你可以回复上面这条便签

captcha