温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在php中定义一个pdo公共类

发布时间:2021-04-15 15:58:39 来源:亿速云 阅读:189 作者:Leah 栏目:开发技术

怎么在php中定义一个pdo公共类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

db.class.php :

<?php class db extends \PDO {   private static $_instance = null;   protected $dbName = '';   protected $dsn;   protected $dbh;   public function __construct($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset='utf8') {     try {       $this->dsn = 'mysql:host=' . $dbHost . ';dbname=' . $dbName;       $this->dbh = new \PDO($this->dsn, $dbUser, $dbPasswd);       $this->dbh->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);       $this->dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);       $this->dbh->exec('SET character_set_connection='.$dbCharset.';SET character_set_client='.$dbCharset.';SET character_set_results='.$dbCharset);     } catch (Exception $e) {       $this->outputError($e->getMessage());      }   }   public static function getInstance($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset='utf8') {     if (self::$_instance === null) {       self::$_instance = new self($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset);     }     return self::$_instance;   }   public function fetchAll($sql, $params = array()) {     try {       $stm = $this->dbh->prepare($sql);       if ($stm && $stm->execute($params)) {         return $stm->fetchAll(\PDO::FETCH_ASSOC);       }     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function fetchOne($sql, $params = array()) {     try {       $result = false;       $stm = $this->dbh->prepare($sql);       if ($stm && $stm->execute($params)) {         $result = $stm->fetch(\PDO::FETCH_ASSOC);       }       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function fetchColumn($sql, $params = array()) {     $result = '';     try {       $stm = $this->dbh->prepare($sql);       if ($stm && $stm->execute($params)) {         $result = $stm->fetchColumn();       }       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function insert($table, $params = array(), $returnLastId = true) {     $_implode_field = '';     $fields = array_keys($params);     $_implode_field = implode(',', $fields);     $_implode_value = '';     foreach ($fields as $value) {       $_implode_value .= ':'. $value.',';     }     $_implode_value = trim($_implode_value, ',');     $sql = 'INSERT INTO ' . $table . '(' . $_implode_field . ') VALUES ('.$_implode_value.')';     try {       $stm = $this->dbh->prepare($sql);       $result = $stm->execute($params);       if ( $returnLastId ) {         $result = $this->dbh->lastInsertId();       }       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function update($table, $params = array(), $where = null) {     $_implode_field = '';     $_implode_field_arr = array();     if ( empty($where) ) {       return false;     }     $fields = array_keys($params);     foreach ($fields as $key) {       $_implode_field_arr[] = $key . '=' . ':'.$key;     }     $_implode_field = implode(',', $_implode_field_arr);     $sql = 'UPDATE ' . $table . ' SET ' . $_implode_field . ' WHERE ' . $where;     try {       $stm = $this->dbh->prepare($sql);       $result = $stm->execute($params);       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function delete($sql, $params = array()) {     try {       $stm = $this->dbh->prepare($sql);       $result = $stm->execute($params);       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   public function exec($sql, $params = array()) {     try {       $stm = $this->dbh->prepare($sql);       $result = $stm->execute($params);       return $result;     } catch (Exception $e) {       $this->outputError($e->getMessage());     }   }   private function outputError($strErrMsg) {     throw new Exception("MySQL Error: " . $strErrMsg);   }   public function __destruct() {     $this->dbh = null;   } }

实例:

<?php require_once './db.class.php'; $pdo = db::getInstance('127.0.0.1', 'root', '111111', 'php_cms'); $sql = "select id, title1 from cms_wz where id = :id limit 1"; $parame = array('id' => 12,); $res = $pdo->fetchOne($sql, $parame); var_dump($res); $sql = 'SELECT * FROM cms_link'; $result = $db->fetchAll($sql); print_r($result); //查询记录数量 $sql = 'SELECT COUNT(*) FROM cms_link'; $count = $db->fetchColumn($sql); echo $count; $data = array(   'siteid' => 1,   'linktype' => 1,   'name' => 'google',   'url' => 'http://www.google.com',   'listorder' => 0,   'elite' => 0,   'passed' => 1,   'addtime' => time()   ); $lastInsertId = $db->insert('cms_link', $data); echo $lastInsertId; //用 try  try {      $result = $pdo->insert('news', $essay);    } catch (Exception $e) {      error_log($e->getMessage());      error_log($e->getMessage() . ' in ' . __FILE__ . ' on line ' . __LINE__);      saveLog('url文章 : ' . $essay['link'] . '  数据插入失败<br>');      continue;    } $data = array(   'siteid' => 1,   'linktype' => 1,   'name' => 'google',   'url' => 'http://www.google.com',   'listorder' => 0,   'elite' => 0,   'passed' => 1,   'addtime' => time()   ); $db->insert('cms_link', $data); $sql = 'DELETE FROM cms_link WHERE linkid=4'; $result = $db->delete($sql); var_dump($result);

关于怎么在php中定义一个pdo公共类问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI