本文实例讲述了PHP封装的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;
}
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# PHP
# PDO
# 数据库
# 操作类
# php封装的pdo数据库操作工具类与用法示例
# PHP封装的数据库模型Model类完整示例【基于PDO】
# PHP用PDO如何封装简单易用的DB类详解
# php基于PDO实现功能强大的MYSQL封装类实例
# php封装pdo实例以及pdo长连接的优缺点总结
# 程序设计
# 操作技巧
# 相关内容
# 感兴趣
# 给大家
# 更多关于
# 所述
# 面向对象
# 讲述了
# foreach
# str
# str_arr
# key
# substr
# val
# tmp
# tableName
# select_data
# return
# query_str
相关文章:
网站app免费制作软件,能免费看各大网站视频的手机app?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
简历在线制作网站免费,免费下载个人简历的网站是哪些?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何快速启动建站代理加盟业务?
广州美橙建站如何快速搭建多端合一网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
如何在IIS7上新建站点并设置安全权限?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
C#如何在一个XML文件中查找并替换文本内容
佛山企业网站制作公司有哪些,沟通100网上服务官网?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
已有域名能否直接搭建网站?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何快速搭建响应式可视化网站?
如何通过老薛主机一键快速建站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何在新浪SAE免费搭建个人博客?
如何快速生成高效建站系统源代码?
如何选择网络建站服务器?高效建站必看指南
如何选择高效便捷的WAP商城建站系统?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
太原网站制作公司有哪些,网约车营运证查询官网?
如何用低价快速搭建高质量网站?
建站之家VIP精选网站模板与SEO优化教程整合指南
如何做网站制作流程,*游戏网站怎么搭建?
如何通过cPanel快速搭建网站?
制作证书网站有哪些,全国城建培训中心证书查询官网?
如何通过宝塔面板实现本地网站访问?
建站之星logo尺寸如何设置最合适?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建站主机选购指南:核心配置与性价比推荐解析
如何解决ASP生成WAP建站中文乱码问题?
网站制作说明怎么写,简述网页设计的流程并说明原因?
如何挑选最适合建站的高性能VPS主机?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
平台云上自助建站如何快速打造专业网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
个人摄影网站制作流程,摄影爱好者都去什么网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
简单实现Android文件上传
如何通过山东自助建站平台快速注册域名?
常州自助建站工具推荐:低成本搭建与模板选择技巧
实现虚拟支付需哪些建站技术支撑?
如何配置IIS站点权限与局域网访问?
高防服务器如何保障网站安全无虞?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
*请认真填写需求信息,我们会在24小时内与您取得联系。