php中PDO方式实现数据库的增删改查
| 需要开启php的pdo支持,php5.1以上版本支持 实现数据库连接单例化,有三要素 静态变量、静态实例化方法、私有构造函数 DPDO.php DSN = $dsn;
    $this->DBUser = $DBUser;
    $this->DBPwd = $DBPwd;
    $this->longLink = $longLink;
    $this->connect();
  }
  //私有 空克隆函数 防止被克隆
  private function __clone(){}
  //静态 实例化函数 返回一个pdo对象
  static public function instance($dsn,$longLink = false){
    static $singleton = array();//静态函数 用于存储实例化对象
    $singIndex = md5($dsn . $DBUser . $DBPwd . $longLink);
    if (empty($singleton[$singIndex])) {
      $singleton[$singIndex] = new self($dsn,$longLink = false);
    }
    return $singleton[$singIndex]->pdo;
  }
 private function connect(){ 用于处理字段映射,使用pdo的字段映射,可以有效避免sql注入  $value) {
      $mapIndex = ':' . ($link != ',' ? 'c' : '') . $aliasTable . $key;
      $sql .= ' ' . ($aliasTable ? $aliasTable . '.' : '') . '`' . $key . '` ' . ($judge[$key] ? $judge[$key] : '=') . ' ' . $mapIndex . ' ' . $link;
      $mapData[$mapIndex] = $value;
    }
    $sql = trim($sql,$link);
    return array($sql,$mapData);
  }
  //用于处理单个字段处理
  public function FDField($field,$value,$judge = '=',$preMap = 'cn',$aliasTable = '') {
    $mapIndex = ':' . $preMap . $aliasTable . $field;
    $sql = ' ' . ($aliasTable ? $aliasTable . '.' : '') . '`' . $field . '`' . $judge . $mapIndex;
    $mapData[$mapIndex] = $value;
    return array($sql,$mapData);
  }
  //使用刚方法可以便捷产生查询条件及对应数据数组
  public function FDCondition($condition,$mapData) {
    if(is_string($condition)) {
        $where = $condition;
    } else if (is_array($condition)) {
      if($condition['str']) {
        if (is_string($condition['str'])) {
          $where = $condition['str'];
        } else {
          return false;
        }
      }
      if(is_array($condition['data'])) {
        $link = $condition['link'] ? $condition['link'] : 'and';
        list($conSql,$mapConData) = $this->FDFields($condition['data'],$link,$condition['judge']);
        if ($conSql) {
          $where .= ($where ? ' ' . $link : '') . $conSql;
          $mapData = array_merge($mapData,$mapConData);
        }
      }
    }
    return array($where,$mapData);
  }
 增删改查的具体实现DB.php  PDO::CURSOR_FWDONLY)) {
    if ($sql) {
      $sql .= ' limit 1';
      $pdoStatement = $this->pdo->prepare($sql,$preType);
      $pdoStatement->execute($searchData);
      return $data = $pdoStatement->fetch($dataMode);
    } else {
      return false;
    }
  }
 public function fetchAll($sql,$limit = array(0,10),$preType = array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)) { public function insert($tableName,$data,$returnInsertId = false,$replace = false) { public function update($tableName,$condition,$mapData = array(),$returnRowCount = true) { public function delete($tableName,$mapData = array()) { 测试文件test.php if (function_exists('spl_autoload_register')) { spl_autoload_register('autoClass'); } else { function __auto_load($className){ autoClass($className); } } function autoClass($className){ //查询 var_dump($mData); 以上所述就是本文的全部内容了,希望大家能够喜欢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
