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

数据库连接就自己写吧。

封装PDO操作数据库的更多相关文章

  1. 使用PDO操作数据库的好处

    PDO一是PHP数据对象(PHP Data Object)的缩写. 并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的P ...

  2. 封装JDBC操作数据库的方法

    自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三: ...

  3. php pdo操作数据库

    POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题. PDO的特点: 性能.PDO 从一开始就吸取了现有数据库扩展成 ...

  4. PHP使用PDO操作数据库的示例

    <pre><?phpheader("Content-type:text/html;charset=utf8");//error_reporting(E_ALL^E ...

  5. PHP 笔记——PDO操作数据库

    一.简介 ​ PHP 5.1可使用轻量级的统一接口 PDO(PHP Data Object,PHP数据对象)来访问各种常见的数据库.而使用PDO只需要指定不同的 DSN(数据源名称)即可访问不同的数据 ...

  6. php pdo操作数据库的方法

    PDO 安装 你可以通过 PHP 的 phpinfo() 函数来查看是否安装了PDO扩展. 1.在 Unix /linux系统上安装 PDO 在Unix上或Linux上你需要添加以下扩展: exten ...

  7. PDO操作数据库

  8. PHP数据库扩展 - PDO操作

    PDO操作 PDO操作 描述:odp是php对数据库操作统一化的操作 语法:$pdo = new PDO("DB名:host=主机名;dbname=DB名","DB账号& ...

  9. 6-2 python 操作数据库mysql

    1.python操作MySQL的 查询(select操作) 步骤 import pymysql # 1.建立数据库连接 conn = pymysql.connect(host='118.24.3.40 ...

随机推荐

  1. POJ 1240 Pre-Post-erous!

    k叉树的前序和后续遍历,问一共有多少种这样的k叉树 这个就是树的同构,组合数就能解决 同样的题目在51nod也有的,我的另一篇博客 POJ 1240 Pre-Post-erous! We are al ...

  2. SPFA ----模板 O(kE) (k一般不超过2)

    原理:若一个点入队的次数超过顶点数V,则存在负环: #include "bits/stdc++.h" using namespace std; ; struct Edge { in ...

  3. 2017.8.12 dp课小结

    这节课难度超级大啊,基本上都是省选+NOI的题. 例1: 1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec  Memory Limit: 64 MB Subm ...

  4. Android多媒体访问

    Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(inter ...

  5. python 命令行传入参数

    创建 test.py 文件,代码如下: #!/usr/bin/python # -*- coding: gbk -*- import sys print sys.argv if __name__==' ...

  6. Linux目录结构简析

    Linux目录结构简析 Linux继承了unix操作系统结构清晰的特点.在linux下的文件结构非常有条理.但是,上述的优点只有在对linux相当熟悉时,才能体会到.现在,虫虫就把linux下的目录结 ...

  7. PAT 甲级 1003. Emergency (25)

    1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...

  8. 转 Python爬虫入门七之正则表达式

    静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...

  9. PHP错误捕获处理

    PHP错误捕获处理 一般捕获错误使用的方法是: try{ ...}catch(Exception $e){ echo $e->getMessage();} 或者 set_exception_ha ...

  10. Servlet 2.4 规范之第六篇:响应

    响应对象封装了服务端返回给客户端的所有信息.在HTTP协议中,这些信息通过HTTP头和消息体传送. SRV.5.1    缓冲 出于效率考量,servlet容器可以缓冲输出数据,但这并非强制要求.常见 ...