封装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 ...
随机推荐
- POJ 1240 Pre-Post-erous!
k叉树的前序和后续遍历,问一共有多少种这样的k叉树 这个就是树的同构,组合数就能解决 同样的题目在51nod也有的,我的另一篇博客 POJ 1240 Pre-Post-erous! We are al ...
- SPFA ----模板 O(kE) (k一般不超过2)
原理:若一个点入队的次数超过顶点数V,则存在负环: #include "bits/stdc++.h" using namespace std; ; struct Edge { in ...
- 2017.8.12 dp课小结
这节课难度超级大啊,基本上都是省选+NOI的题. 例1: 1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec Memory Limit: 64 MB Subm ...
- Android多媒体访问
Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(inter ...
- python 命令行传入参数
创建 test.py 文件,代码如下: #!/usr/bin/python # -*- coding: gbk -*- import sys print sys.argv if __name__==' ...
- Linux目录结构简析
Linux目录结构简析 Linux继承了unix操作系统结构清晰的特点.在linux下的文件结构非常有条理.但是,上述的优点只有在对linux相当熟悉时,才能体会到.现在,虫虫就把linux下的目录结 ...
- PAT 甲级 1003. Emergency (25)
1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...
- 转 Python爬虫入门七之正则表达式
静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
- PHP错误捕获处理
PHP错误捕获处理 一般捕获错误使用的方法是: try{ ...}catch(Exception $e){ echo $e->getMessage();} 或者 set_exception_ha ...
- Servlet 2.4 规范之第六篇:响应
响应对象封装了服务端返回给客户端的所有信息.在HTTP协议中,这些信息通过HTTP头和消息体传送. SRV.5.1 缓冲 出于效率考量,servlet容器可以缓冲输出数据,但这并非强制要求.常见 ...