亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP基于pdo的數據庫操作類【可支持mysql、sqlserver及oracle】

2024-05-05 00:03:49
字體:
來源:轉載
供稿:網友

本文實例講述了PHP基于pdo的數據庫操作類。分享給大家供大家參考,具體如下:

工作中需要操作sqlserver、oracle都是使用的這個類,當時是在別人的基礎上改進了,現在分享下

<?phpclass Pdodb{  protected $pdo;  protected $res;  protected $config;  /*構造函數*/  function __construct($config){    $this->Config = $config;    $this->connect();  }  /*數據庫連接*/  public function connect(){    try {       $this->pdo= new PDO($this->Config['dsn'], $this->Config['username'], $this->Config['password']);//$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);       $this->pdo->query("set names utf8");    }catch(Exception $e){      echo '數據庫連接失敗,詳情: ' . $e->getMessage () . ' 請在配置文件中數據庫連接信息';      exit ();    }    /*    if($this->Config['type']=='oracle'){      $this->pdo->query("set names {$this->Config['charset']};");    }else{      $this->pdo->query("set names {$this->Config['charset']};");    }    */    //把結果序列化成stdClass    //$this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);    //自己寫代碼捕獲Exception    //$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    $this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);//屬性名 屬性值 數組以關聯數組返回  }  /*數據庫關閉*/  public function close(){    $this->pdo = null;  }  //用于有記錄結果返回的操作,特別是SELECT操作  public function query($sql,$return=false){    $res = $this->pdo->query($sql);    if($res){      $this->res = $res; // 未返回 return $this->res;    }    if($return){      return $res;    }  }  //主要是針對沒有結果集合返回的操作,比如INSERT、UPDATE、DELETE等操作  public function exec($sql,$return=false){    $res = $this->pdo->exec($sql);    if($res){      $this->res = $res;    }    if($return){//返回操作是否成功 成功返回1 失敗0      return $res;    }  }  //將$this->res以數組返回(全部返回)  public function fetchAll(){    return $this->res->fetchAll();  }  //將$this->res以數組返回(一條記錄)  public function fetch(){    return $this->res->fetch();  }  //返回所有字段  public function fetchColumn(){    return $this->res->fetchColumn();  }  //返回最后插入的id  public function lastInsertId(){    return $this->res->lastInsertId();  }  //返回最后插入的id  public function lastInsertId2(){    return $this->pdo->lastInsertId();  }  /**  * 參數說明  * string/array $table 數據庫表,兩種傳值模式  * 普通模式:  * 'tb_member, tb_money'  * 數組模式:  * array('tb_member', 'tb_money')  * string/array $fields 需要查詢的數據庫字段,允許為空,默認為查找全部,兩種傳值模式  * 普通模式:  * 'username, password'  * 數組模式:  * array('username', 'password')  * string/array $sqlwhere 查詢條件,允許為空,兩種傳值模式  * 普通模式(必須加上and,$sqlwhere為空 1=1 正常查詢):  * 'and type = 1 and username like "%os%"'  * 數組模式:  * array('type = 1', 'username like "%os%"')  * string $orderby 排序,默認為id倒序  *int $debug 是否開啟調試,開啟則輸出sql語句  * 0 不開啟  * 1 開啟  * 2 開啟并終止程序  * int $mode 返回類型  * 0 返回多條記錄  * 1 返回單條記錄  * 2 返回行數  */  public function select($table, $fields="*", $sqlwhere="", $orderby="", $debug=0, $mode=0){    //參數處理    if(is_array($table)){      $table = implode(', ', $table);    }    if(is_array($fields)){      $fields = implode(',',$fields);      /*      if($this->Config['type']=='oracle'){        //$fields = implode(',',$fields);//CUSTOMER_ID,FIRST_NAME,LAST_NAME,EMAIL        //$fields = implode(",'UTF8','ZHS16GBK') ,convert(",$fields);        //$fields="convert(".$fields.",'UTF8','ZHS16GBK')";      }else{        $fields = implode(',',$fields);      }      */    }    if(is_array($sqlwhere)){      $sqlwhere = ' and '.implode(' and ', $sqlwhere);    }    //數據庫操作    if($debug === 0){      if($mode === 2){ //統計        $this->query("select count(*) from $table where 1=1 $sqlwhere");        $return = $this->fetchColumn();      }else if($mode === 1){ //返回一條        $this->query("select $fields from $table where 1=1 $sqlwhere $orderby");        $return = $this->fetch();      }else{        $this->query("select $fields from $table where 1=1 $sqlwhere $orderby");        $return = $this->fetchAll();//如果 $this->res為空即sql語句錯誤 會提示Call to a member function fetchAll() on a non-object      }      return $return;    }else{        if($mode === 2){          echo "select count(*) from $table where 1=1 $sqlwhere";        }else if($mode === 1){          echo "select $fields from $table where 1=1 $sqlwhere $orderby";        }else{          echo "select $fields from $table where 1=1 $sqlwhere $orderby";        }        if($debug === 2){          exit;        }    }  }  /**  * 參數說明  * string/array $table 數據庫表,兩種傳值模式  * 普通模式:  * 'tb_member, tb_money'  * 數組模式:  * array('tb_member', 'tb_money')  * string/array $set 需要插入的字段及內容,兩種傳值模式  * 普通模式:  * 'username = "test", type = 1, dt = now()'  * 數組模式:  * array('username = "test"', 'type = 1', 'dt = now()')  * int $debug 是否開啟調試,開啟則輸出sql語句  * 0 不開啟  * 1 開啟  * 2 開啟并終止程序  * int $mode 返回類型  * 0 無返回信息  * 1 返回執行條目數  * 2 返回最后一次插入記錄的id  */  public function oic_insert($table, $set, $debug=0, $mode=0){    //參數處理    if(is_array($table)){      $table = implode(', ', $table);    }    if(is_array($set)){      $s='';$i=0;      foreach($set as $k=>$v){        $i++;        $s[$i]=$k;//,連接        $val[$i]=$v;      }      $sarr=implode(",",$s);//去掉最后一個,      //array_pop($sarr);      $set=implode("','",$val);////15221579236','張三','','2001','8','4','女','是      //$set = implode(', ', $set);    }    //數據庫操作    if($debug === 0){      if($mode === 2){        $this->query("insert into $table ($sarr) values('".$set."')");        //$return = $this->lastInsertId();      }else if($mode === 1){        $this->exec("insert into $table ($sarr) values('".$set."')");        $return = $this->res;      }else{        $this->query("insert into $table ($sarr) values('".$set."')");        $return = NULL;      }      return $return;    }else{      echo "insert into $table ($sarr) values('".$set."')";      if($debug === 2){        exit;      }    }  }  public function insert($table, $set, $debug=0, $mode=0){    //參數處理    if(is_array($table)){      $table = implode(', ', $table);    }    if(is_array($set)){      $s='';      foreach($set as $k=>$v){        $s.=$k."='".$v."',";//,連接      }      $sarr=explode(',',$s);//去掉最后一個,      array_pop($sarr);      $set=implode(',',$sarr);      //$set = implode(', ', $set);    }    //數據庫操作    if($debug === 0){      if($mode === 2){        $this->query("insert into $table set $set");        $return = $this->pdo->lastInsertId();      }else if($mode === 1){        $this->exec("insert into $table set $set");        $return = $this->res;      }else{        $this->query("insert into $table set $set");        $return = NULL;      }      return $return;    }else{      echo "insert into $table set $set";      if($debug === 2){        exit;      }    }  }  /**  * 參數說明  * string $table 數據庫表,兩種傳值模式  * 普通模式:  * 'tb_member, tb_money'  * 數組模式:  * array('tb_member', 'tb_money')  * string/array $set 需要更新的字段及內容,兩種傳值模式  * 普通模式:  * 'username = "test", type = 1, dt = now()'  * 數組模式:  * array('username = "test"', 'type = 1', 'dt = now()')  * string/array $sqlwhere 修改條件,允許為空,兩種傳值模式  * 普通模式:  * 'and type = 1 and username like "%os%"'  * 數組模式:  * array('type = 1', 'username like "%os%"')  * int $debug 是否開啟調試,開啟則輸出sql語句  * 0 不開啟  * 1 開啟  * 2 開啟并終止程序  * int $mode 返回類型  * 0 無返回信息  * 1 返回執行條目數  */  public function update($table, $set, $sqlwhere="", $debug=0, $mode=0){    //參數處理    if(is_array($table)){      $table = implode(', ', $table);    }    if(is_array($set)){      $s='';      foreach($set as $k=>$v){        $s.=$k."='".$v."',";      }      $sarr=explode(',',$s);//去掉最后一個,      array_pop($sarr);      $set=implode(',',$sarr);      //$set = implode(', ', $set);    }    if(is_array($sqlwhere)){      $sqlwhere = ' and '.implode(' and ', $sqlwhere);    }    //數據庫操作    if($debug === 0){      if($mode === 1){        $this->exec("update $table set $set where 1=1 $sqlwhere");        $return = $this->res;      }else{        $this->query("update $table set $set where 1=1 $sqlwhere");        $return = true;      }      return $return;    }else{      echo "update $table set $set where 1=1 $sqlwhere";      if($debug === 2){        exit;      }    }  }  /**  * 參數說明  * string $table 數據庫表  * string/array $sqlwhere 刪除條件,允許為空,兩種傳值模式  * 普通模式:  * 'and type = 1 and username like "%os%"'  * 數組模式:  * array('type = 1', 'username like "%os%"')  * int $debug 是否開啟調試,開啟則輸出sql語句  * 0 不開啟  * 1 開啟  * 2 開啟并終止程序  * int $mode 返回類型  * 0 無返回信息  * 1 返回執行條目數  */  public function delete($table, $sqlwhere="", $debug=0, $mode=0){    //參數處理    if(is_array($sqlwhere)){      $sqlwhere = ' and '.implode(' and ', $sqlwhere); //是字符串需自己加上and    }    //數據庫操作    if($debug === 0){      if($mode === 1){        $this->exec("delete from $table where 1=1 $sqlwhere");        $return = $this->res;      }else{        $this->query("delete from $table where 1=1 $sqlwhere");        $return = NULL;      }      return $return;    }else{      echo "delete from $table where 1=1 $sqlwhere";      if($debug === 2){        exit;      }    }  }}/*sqlserver 配置 extension=php_pdo_mssql.dll和extension=php_pdo_sqlsrv.dll 安裝對應的 ntwdblib.dllhttp://msdn.microsoft.com/en-us/library/cc296170.aspx 下載php版本對應的sqlsrv擴展sqlserver 配置 odbc連接需開啟extension=php_pdo_odbc.dll*/$mssql2008_config=array(  'dsn'=>'odbc:Driver={SQL Server};Server=192.168.1.60;Database=his',//數據庫服務器地址  'username'=>'sa',  'password'=>'xxxxx',);$mssql=new Pdodb($mssql2008_config);$sql="select * from(  select row_number()over(order by tempcolumn)temprownumber,*    from (      select top 10 tempcolumn=0,a.*      from DA_GR_HBFS a      where 1=1    ) t) ttwhere temprownumber>0";$mssql->query($sql);while($res=$mssql->fetch()){  $data[]=$res;}print_r($data);exit;//mysql 操作$msyql_config=array(  'dsn'=>'mysql:host=localhost;dbname=talk',  'username'=>'root',  'password'=>'123456');$mysql=new PDO_DB($msyql_config);$sql = 'SELECT user_id, user_name, nickname FROM et_users ';$mysql->query($sql);$data=$mysql->fetchAll();print_r($data);exit;//oracle 操作$oci_config=array(  'dsn'=>'oci:dbname=orcl',  'username'=>'BAOCRM',  'password'=>'BAOCRM');$oracle=new PDO_DB($oci_config);//print_r($oracle);exit;//PDO_DB Object ( [pdo:protected] => PDO Object ( ) [res:protected] => [config:protected] => [Config] => Array ( [dsn] => oci:dbname=orcl [name] => PWACRM [password] => PWACRM ) )$sql="select * from CUSTOMER_LEVEL t";$oracle->query($sql);$data=$oracle->fetchAll();print_r($data);exit;/*Array(  [0] => Array    (      [LEVEL_ID] => 1      [0] => 1      [LEVEL_NAME] => 普通會員      [1] => 普通會員      [LEVEL_DETAIL] => 普通會員      [2] => 普通會員      [SORT_NUMBER] => 15      [3] => 15      [CREATE_TIME] => 12-7月 -12      [4] => 12-7月 -12      [CREATE_BY] => 1      [5] => 1      [UPDATE_TIME] => 12-7月 -12      [6] => 12-7月 -12      [UPDATE_BY] => 1      [7] => 1      [STATE] => 正常      [8] => 正常    ))*/?>

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
全色精品综合影院| 国产97免费视| 亚洲国产成人91精品| 欧美极品美女视频网站在线观看免费| 一区二区欧美亚洲| 91免费看视频.| 欧美一级免费看| 亚洲自拍高清视频网站| 久久久久久中文字幕| 久久综合色88| 国产乱人伦真实精品视频| 久久久久久香蕉网| 久久久久久尹人网香蕉| 精品视频在线观看日韩| 亚洲免费伊人电影在线观看av| 久久av中文字幕| 国产一区玩具在线观看| 国内精品久久久久影院优| 亚洲一级黄色片| 伊人男人综合视频网| 国产男人精品视频| 91精品国产91久久久| 91在线观看免费高清完整版在线观看| 国产成人精品久久二区二区91| 中文字幕欧美精品日韩中文字幕| 亚洲电影免费观看高清完整版在线观看| 欧美在线免费观看| 国产一区二区丝袜| 欧美做爰性生交视频| 国产精品久久久久久久7电影| 欧美黄色免费网站| 久久精品一本久久99精品| 免费91麻豆精品国产自产在线观看| xxx欧美精品| 欧美国产在线电影| 欧美专区日韩视频| 亚洲精品视频播放| 一本色道久久88综合日韩精品| www.日韩系列| 欧美激情国内偷拍| 欧美日韩美女视频| 精品香蕉在线观看视频一| 久久久国产在线视频| 午夜精品福利在线观看| 亚洲亚裔videos黑人hd| 国产区亚洲区欧美区| 欧美国产日韩视频| 精品国产一区二区三区久久狼5月| 久久久天堂国产精品女人| 不卡毛片在线看| 成人做爽爽免费视频| 久久久久久久久亚洲| 国产成人精品av| 亚洲电影免费观看高清完整版在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品偷伦免费视频观看的| 亚洲а∨天堂久久精品9966| 国产成人一区二区三区| 国产精品视频资源| 国产欧美va欧美va香蕉在线| 精品电影在线观看| 日韩精品视频在线免费观看| 日韩成人激情影院| 日韩精品中文在线观看| 亚洲成人xxx| 国产精品成人aaaaa网站| 欧美精品激情在线观看| 精品国偷自产在线| 亚洲xxxxx性| 国产精品日日做人人爱| 国产精品稀缺呦系列在线| 97成人精品视频在线观看| 亚洲精品中文字幕有码专区| 国产aⅴ夜夜欢一区二区三区| 久久久久久久999精品视频| 欧美激情视频三区| 孩xxxx性bbbb欧美| 久国内精品在线| 欧美日韩中文字幕综合视频| 国产精品第100页| 精品日韩美女的视频高清| 亚洲另类xxxx| 欧美性生交xxxxx久久久| 精品亚洲va在线va天堂资源站| 成人在线激情视频| 日韩亚洲成人av在线| 亚洲精品成人久久电影| 成人免费网视频| 97视频在线观看亚洲| 一本色道久久综合狠狠躁篇的优点| 91麻豆国产语对白在线观看| 亚洲第一综合天堂另类专| 午夜免费在线观看精品视频| 亚洲美女av在线| 亚洲电影第1页| 国产精品青青在线观看爽香蕉| 亚洲国产成人精品女人久久久| 亚洲欧美日韩高清| 日产精品久久久一区二区福利| 国产精品第1页| 欧美片一区二区三区| 久久亚洲精品一区二区| 久久久久久噜噜噜久久久精品| 最近2019中文字幕大全第二页| xxx一区二区| 成人午夜一级二级三级| 国产香蕉精品视频一区二区三区| 正在播放国产一区| 性色av一区二区三区免费| 狠狠做深爱婷婷久久综合一区| 久久视频在线免费观看| 亚洲成人激情在线观看| 亚洲精品日韩在线| 日韩av电影在线播放| 国产在线视频欧美| 91在线观看欧美日韩| 亚洲一区制服诱惑| 亚洲一区二区三区777| 欧美性精品220| 亚洲一区二区三区久久| 亚洲人免费视频| 国产91色在线|免| 精品久久久久久中文字幕一区奶水| 国产精品成av人在线视午夜片| 亚洲第一视频网站| 国产精品福利在线观看| 国产手机视频精品| 国产一区二区欧美日韩| 精品色蜜蜜精品视频在线观看| 欧美在线日韩在线| 亚洲综合精品一区二区| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲人在线视频| 国产精品视频久| 亚洲色图偷窥自拍| 久久久精品一区| 欧美精品手机在线| 欧美性猛交xxxx| 国产精品成久久久久三级| 九九热99久久久国产盗摄| 国产精品精品久久久| 中文字幕亚洲天堂| 欧美午夜无遮挡| 一区二区亚洲精品国产| 亚洲国产成人精品久久久国产成人一区| 亚洲偷熟乱区亚洲香蕉av| 欧美韩国理论所午夜片917电影| 欧美最猛性xxxxx(亚洲精品)| 国产精品免费看久久久香蕉| 亚洲风情亚aⅴ在线发布| 一区二区三区 在线观看视| 日韩av在线导航| 亚洲图中文字幕| 欧美视频在线视频| 亚洲视频在线免费观看| 欧美一区二区三区四区在线| 欧美日韩国产精品一区二区不卡中文| 欧美第一黄色网| 欧美激情2020午夜免费观看| 欧美洲成人男女午夜视频| 午夜精品一区二区三区在线视频| 久久成人18免费网站| 伊人亚洲福利一区二区三区| 亚洲aaaaaa|