php实现的pdo公共类定义与用法示例
author:一佰互联 2019-04-26   click:150

本文实例讲述了php实现的pdo公共类定义与用法。分享给大家供大家参考,具体如下:

db.class.php :

<?phpclass 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;  }}

实例:

<?phprequire_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相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。