封装PDO操作数据库
<?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操作数据库的更多相关文章
- 使用PDO操作数据库的好处
PDO一是PHP数据对象(PHP Data Object)的缩写. 并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的P ...
- 封装JDBC操作数据库的方法
自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三: ...
- php pdo操作数据库
POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题. PDO的特点: 性能.PDO 从一开始就吸取了现有数据库扩展成 ...
- PHP使用PDO操作数据库的示例
<pre><?phpheader("Content-type:text/html;charset=utf8");//error_reporting(E_ALL^E ...
- PHP 笔记——PDO操作数据库
一.简介 PHP 5.1可使用轻量级的统一接口 PDO(PHP Data Object,PHP数据对象)来访问各种常见的数据库.而使用PDO只需要指定不同的 DSN(数据源名称)即可访问不同的数据 ...
- php pdo操作数据库的方法
PDO 安装 你可以通过 PHP 的 phpinfo() 函数来查看是否安装了PDO扩展. 1.在 Unix /linux系统上安装 PDO 在Unix上或Linux上你需要添加以下扩展: exten ...
- PDO操作数据库
- PHP数据库扩展 - PDO操作
PDO操作 PDO操作 描述:odp是php对数据库操作统一化的操作 语法:$pdo = new PDO("DB名:host=主机名;dbname=DB名","DB账号& ...
- 6-2 python 操作数据库mysql
1.python操作MySQL的 查询(select操作) 步骤 import pymysql # 1.建立数据库连接 conn = pymysql.connect(host='118.24.3.40 ...
随机推荐
- TOJ3031: Multiple bfs
3031: Multiple Time Limit(Common/Java):2000MS/6000MS Memory Limit:65536KByte Total Submit: 60 ...
- 2017"百度之星"程序设计大赛 - 初赛(B)
Chess Accepts: 1805 Submissions: 5738 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768 ...
- c/c++内存泄露的检测方法
此文内容摘自 https://zhuanlan.zhihu.com/p/22664202 作为 从零开始的 JSON 库教程(三):解析字符串解答篇 的笔记 1A. Windows 下的内存泄漏 ...
- DS博客作业05--树
1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会 学完树之后,最大的感觉就是在处理节点之间的兄弟父亲关系的时候真的挺好用的,一目了然.不过,树令人比较头疼的就是要用递归,大致能懂递归 ...
- client三大家族区别(三大家族总结)
目录 目录 2 今日内容: 4 第1章 第三大家族client 4 1.1 主要成员 4 1.2 三大家族区别(三大家族总结) 5 1.2.1 Width和height 5 1.2.2 top和lef ...
- scikit-learn使用方法
1.支持向量机 #_*_ coding:utf-8 _*_ from sklearn import datasets from sklearn import svm #装载内部测试数据集 digits ...
- NOIP赛前模拟20171027总结
题目: 1.寿司 给定一个环形的RB串··要求经过两两互换后RB分别形成两段连续区域,求最少操作次数(算法时间O(n)) 2.金字塔 给定一个金字塔的侧面图有n层··已知每一层的宽度··高度均为1·· ...
- 【bzoj3270】博物馆
同样是高斯消元,我写的版本就受到了歧视 我怎么又犯把 $j$ 打成 $i$ 这种 $sb$ 错误 题意 一张无向图,两个人分别从 $s_1$ 号点和 $s2$ 号点开始,每轮两人都会同时进行一次以下操 ...
- 《如何成为一位大家愿意追随的Leader》读后感
今天看了左耳朵耗子老师的文章<如何成为一位大家愿意追随的Leader>深有感触.每一行字都往心里说,文章里说到Leader和Boss的不同点在于,Leader是大家跟我一起上,而Boss则 ...
- Python基础教程总结(一)
引言: 一直都听说Python很强大,以前只是浏览了一些博客,发现有点像数学建模时使用的Matlab,就没有深入去了解了.如今Python使用的地方越来越多,最近又在学习机器学习方面的知识,因此想系统 ...