当前位置:Gxlcms > PHP教程 > 有关PHP中封装的PDO数据库操作类的相关介绍

有关PHP中封装的PDO数据库操作类的相关介绍

时间:2021-07-01 10:21:17 帮助过:4人阅读

这篇文章主要介绍了PHP封装的PDO数据库操作类,结合具体实例形式分析了php基于PDO针对数据库的增删改查、事务、批量添加等相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP封装的PDO数据库操作类。分享给大家供大家参考,具体如下:


  1. <?php
  2. class DatabaseHandler {
  3. /**
  4. * sql语句查询
  5. */
  6. public static function query_data ($dataName,$sql,$query=array()) {
  7. $result = array();
  8. if (!empty($sql)) {
  9. $data = Bj_PdoDB::factory($dataName)->allPrepare($sql, $query);
  10. if (!$data->isEmpty()) {
  11. $result = $data->data;
  12. }
  13. }
  14. return $result;
  15. }
  16. /**
  17. * 查询数据
  18. */
  19. public static function select_data ($dataName,$tableName,$where,$param=array(),$desc='') {
  20. $result = array();
  21. $query = array();
  22. $query_str = '1=1';
  23. $tmp = '';
  24. $str_arr = '';
  25. if (!empty($param)) {
  26. $str = '';
  27. foreach ($param as $val) {
  28. $str .= '`'.$val.'`,';
  29. }
  30. $str = substr($str,0,-1);
  31. }
  32. $str_arr = !empty($str) ? $str : '*';
  33. if ( !empty($where) ) {
  34. foreach ($where as $key => $value) {
  35. $tmp .= ' AND '.$key.'=:'.$key.'';
  36. $query[':'.$key] = $value;
  37. }
  38. }
  39. $query_str .= $tmp;
  40. if (!empty($desc)) {
  41. $query_str .= $desc;
  42. }
  43. $sql = "SELECT {$str_arr} FROM `".$tableName."` WHERE {$query_str} ";
  44. $query_data = Bj_PdoDB::factory($dataName)->allPrepare($sql, $query);
  45. if ( !$query_data->isEmpty() ) {
  46. $result = $query_data->data;
  47. }
  48. return $result;
  49. }
  50. /**
  51. * 批量添加信息
  52. */
  53. public static function insert_data($dataName,$tableName,$add_param){
  54. $flag = false;
  55. if (!empty($add_param)) {
  56. $fileds = array();
  57. $str = '';
  58. foreach($add_param as $k=>$val){
  59. $str .= '(';
  60. $i = 0;
  61. foreach ($val as $key=>$vl) {
  62. $fileds[$i] = '`'.$key.'`';
  63. $str .= "'".addslashes($vl)."',";
  64. $i++;
  65. }
  66. $str = substr($str,0,-1);
  67. $str .= '),';
  68. }
  69. $filed_str = implode(',',$fileds);
  70. $val_str = substr($str,0,-1);
  71. $sql = "INSERT INTO `".$tableName."` ({$filed_str}) VALUES {$val_str}";
  72. $ret = Bj_PdoDB::factory($dataName)->insertPrepare($sql);
  73. if ( !$ret->isEmpty() ) {
  74. $insertId = $ret->data;
  75. if($insertId > 0){
  76. return $insertId;
  77. }
  78. }
  79. }
  80. return $flag;
  81. }
  82. /**
  83. * 删除数据
  84. */
  85. public static function delete_data ($dataName,$tableName,$id) {
  86. $query = array(':id' => $id);
  87. $sql = "DELETE FROM ". $tableName. " WHERE `id`=:id";
  88. $db_res = Bj_PdoDB::factory($dataName)->simplePrepare($sql,$query);
  89. return $db_res->data;
  90. }
  91. /**
  92. * 更新数据
  93. */
  94. public static function update_data ($dataName,$tableName,$id,$array) {
  95. $flag = false;
  96. if ( !empty($array) && !empty($id)) {
  97. $query = array(':id' => $id);
  98. $up_str = '';
  99. foreach($array as $key=>$val) {
  100. $query[':'.$key] = addslashes($val);
  101. $up_str .= '`'.$key.'`=:'.$key.',';
  102. }
  103. $up_str = substr($up_str,0,-1);
  104. $sql = "UPDATE `".$tableName."` SET ".$up_str." WHERE `id`=:id";
  105. $db_res = Bj_PdoDB::factory($dataName)->changePrepare($sql, $query);
  106. $flag = true;
  107. }
  108. return $flag;
  109. }
  110. /**
  111. * 事务
  112. */
  113. public static function transactionHandler($dataName,$type){
  114. switch ($type) {
  115. case 'begin':
  116. return Bj_PdoDB::factory($dataName)->beginTransaction();
  117. break;
  118. case 'commit':
  119. return Bj_PdoDb::factory($dataName)->commit();
  120. break;
  121. case 'rollback':
  122. return Bj_PdoDb::factory($dataName)->rollback();
  123. break;
  124. default :
  125. exit;
  126. }
  127. }
  128. /**
  129. * curl获取数据get
  130. */
  131. public static function curl_data ($curl_url){
  132. if (!empty($curl_url)) {
  133. $ch = curl_init();
  134. curl_setopt($ch, CURLOPT_URL, $curl_url);
  135. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  136. curl_setopt($ch, CURLOPT_HEADER, 0);
  137. $output = curl_exec($ch);
  138. curl_close($ch);
  139. return $output;
  140. }
  141. return false;
  142. }
  143. /**
  144. * curl提交数据
  145. */
  146. public static function curl_data_post ($ch_url,$param) {
  147. $result = array();
  148. if (!empty($ch_url) && !empty($param)) {
  149. $query_string = http_build_query($param);
  150. $ch = curl_init();
  151. curl_setopt($ch, CURLOPT_URL, $ch_url);
  152. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  153. curl_setopt($ch, CURLOPT_POST,1);
  154. curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
  155. curl_setopt($ch, CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded; charset=UTF-8"));
  156. $output = curl_exec($ch);
  157. curl_close($ch);
  158. $result = !empty($output) ? json_decode($output,true) : array();
  159. }
  160. return $result;
  161. }
  162. }

以上就是有关PHP中封装的PDO数据库操作类的相关介绍的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行