封装PDO操作数据库
时间:2021-07-01 10:21:17
帮助过:5人阅读
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操作数据库
标签: