<?php
class DatabaseHandler { /**
* sql语句查询
*/
public static function query_data ($dataName,$sql,$query=array()) {
$result = array();
if (!empty($sql)) {
$data = Bj_PdoDB::factory($dataName)->allPrepare($sql, $query);
if (!$data->isEmpty()) {
$result = $data->data;
}
}
return $result;
} /**
* 查询数据
*/
public static function select_data ($dataName,$tableName,$where,$param=array(),$desc='') {
$result = array();
$query = array();
$query_str = '1=1';
$tmp = '';
$str_arr = '';
if (!empty($param)) {
$str = '';
foreach ($param as $val) {
$str .= '`'.$val.'`,';
}
$str = substr($str,0,-1);
}
$str_arr = !empty($str) ? $str : '*'; if ( !empty($where) ) {
foreach ($where as $key => $value) {
$tmp .= ' AND '.$key.'=:'.$key.'';
$query[':'.$key] = $value;
}
}
$query_str .= $tmp;
if (!empty($desc)) {
$query_str .= $desc;
}
$sql = "SELECT {$str_arr} FROM `".$tableName."` WHERE {$query_str} ";
$query_data = Bj_PdoDB::factory($dataName)->allPrepare($sql, $query);
if ( !$query_data->isEmpty() ) {
$result = $query_data->data;
}
return $result;
} /**
* 批量添加信息
*/
public static function insert_data($dataName,$tableName,$add_param){
$flag = false;
if (!empty($add_param)) {
$fileds = array();
$str = '';
foreach($add_param as $k=>$val){
$str .= '(';
$i = 0;
foreach ($val as $key=>$vl) {
$fileds[$i] = '`'.$key.'`';
$str .= "'".addslashes($vl)."',";
$i++;
}
$str = substr($str,0,-1);
$str .= '),';
}
$filed_str = implode(',',$fileds);
$val_str = substr($str,0,-1);
$sql = "INSERT INTO `".$tableName."` ({$filed_str}) VALUES {$val_str}";
$ret = Bj_PdoDB::factory($dataName)->insertPrepare($sql);
if ( !$ret->isEmpty() ) {
$insertId = $ret->data;
if($insertId > 0){
return $insertId;
}
}
}
return $flag;
} /**
* 删除数据
*/
public static function delete_data ($dataName,$tableName,$id) {
$query = array(':id' => $id);
$sql = "DELETE FROM ". $tableName. " WHERE `id`=:id";
$db_res = Bj_PdoDB::factory($dataName)->simplePrepare($sql,$query);
return $db_res->data;
} /**
* 更新数据
*/
public static function update_data ($dataName,$tableName,$id,$array) {
$flag = false;
if ( !empty($array) && !empty($id)) {
$query = array(':id' => $id);
$up_str = '';
foreach($array as $key=>$val) {
$query[':'.$key] = addslashes($val);
$up_str .= '`'.$key.'`=:'.$key.',';
}
$up_str = substr($up_str,0,-1);
$sql = "UPDATE `".$tableName."` SET ".$up_str." WHERE `id`=:id";
$db_res = Bj_PdoDB::factory($dataName)->changePrepare($sql, $query);
$flag = true;
}
return $flag;
} /**
* 事务
*/
public static function transactionHandler($dataName,$type){
switch ($type) {
case 'begin':
return Bj_PdoDB::factory($dataName)->beginTransaction();
break;
case 'commit':
return Bj_PdoDb::factory($dataName)->commit();
break;
case 'rollback':
return Bj_PdoDb::factory($dataName)->rollback();
break;
default :
exit;
}
} /**
* curl获取数据get
*/
public static function curl_data ($curl_url){
if (!empty($curl_url)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
return false;
} /**
* curl提交数据
*/
public static function curl_data_post ($ch_url,$param) {
$result = array();
if (!empty($ch_url) && !empty($param)) {
$query_string = http_build_query($param);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ch_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
curl_setopt($ch, CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded; charset=UTF-8"));
$output = curl_exec($ch);
curl_close($ch);
$result = !empty($output) ? json_decode($output,true) : array();
}
return $result;
}
}

数据库连接就自己写吧。

封装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. 在Asp.net MVC中添加一个全局的异常处理的过滤器及Log4Net的使用

    1:捕获异常新建一个异常处理的类MyExceptionAttribute捕获异常信息. //写到日志中.多个线程同时操作一个文件,造成文件的并发,这时用队列 public static Queue&l ...

  2. Welcome-to-Swift-05控制流(Control Flow )

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代 ...

  3. BeanFactory到WebApplicationContext的结构 以及bean和spring容器的关系

    BeanFactory: Ioc 容器 ApplicationContext: Spring容器 WebApplicationContext需要ServletContext实例,也就是说它必须在拥有W ...

  4. SPOJ QTREE4 - Query on a tree IV

    You are given a tree (an acyclic undirected connected graph) with N nodes, and nodes numbered 1,2,3. ...

  5. Codevs 数字三角形 问题合集

    1220 数字三角形 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得 ...

  6. vue.js源码学习分享(四)

    /** * Generate a static keys string from compiler modules.//从编译器生成一个静态键字符串模块. */ function genStaticK ...

  7. 拖拽排序插件 ---- Dragula

    相关链接:  https://github.com/bevacqua/react-dragula https://github.com/bevacqua/react-dragula demo:  ht ...

  8. Codeforces Round #482 (Div. 2)

    D. Kuro and GCD and XOR and SUM 字典树真好玩... 牛老板提供的思路:建1e5个 字典树,每个数插入到以它的因子为根所在的字典树中,这样就实现了整除,当然gcd(k, ...

  9. RSA 公钥加密算法

    RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的. 这个算法的名字也是他们三个人名字首字母,RSA算法基于一个十分简单的数 ...

  10. unity3d Resources.Load动态加载资源

    初步整理并且学习unity3d资源加载方法,预计用时两天完成入门学习Unity3d常用两种加载资源方案:Resources.Load和AssetBundle Resources.Load就是从一个缺省 ...