<?php
/**
* 功能:连接数据库
*参数:数据库[,字符集]
*返回值:成功返回一个数据库连接,失败返回false
*/
function dbConnect($host,$user,$pwd,$dbname,$charset)
{
// $config = $GLOBALS['config'];
// extract($config);
$link = mysqli_connect($host,$user,$pwd);
if(!$link){
return false;
}
if(!mysqli_select_db($link,$dbname)){
return false;
}
if(!mysqli_set_charset($link,$charset)){
return false;
}
return $link;
}
/**
*功能:插入操作
*参数:数据库的连接,数据表,插入的数据
*返回值:成功返回true,如果需要返回id则返回id值,失败返回false
*/
function dbInsert($link,$table,$data,$getId=false){
$data = insertContent($data);
$table = DB_PREFIX . $table;
$sql = "insert into $table ($data[0]) values ($data[1])";
$res = mysqli_query($link,$sql);
if($res && mysqli_affected_rows($link)){
if($getId){
return mysqli_insert_id($link);
}else{
return true;
}
}else{
// return $sql;
return false;
}
}
/**
*功能:查询操作
*参数:数据库连接,数据表,查询字段,查询条件
*返回值:是关联数组则返回true,否则返回false
*/
function dbSelect($link,$table,$fields='*',$where=null,$orderby=null,$limit=null){
$table = DB_PREFIX . $table;
if(is_array($fields)){
$fields=join(',',$fields);
}
$sql = "select $fields from $table ";
if($where){
$where=where($where);
$sql.=' where '.$where;
}
if($orderby){
$sql.=' order by '.$orderby;
}
if($limit){
$sql.=' limit '.$limit;
}
$res = mysqli_query($link,$sql);
// var_dump($res);
if($res && mysqli_num_rows($res)){
return mysqli_fetch_all($res,MYSQLI_BOTH);
}elseif($res!=false){
return null;
}
// return $sql;
return false;
}
/**
*功能:数据库插入操作
*参数:数据库连接,数据表,数据,条件
*返回值:插入成功返回true,否则返回false(sql语句)
*/
//update table set a='b' where id=1;
function dbUpdate($link,$table,$data,$where){
$table = DB_PREFIX . $table;
$data=updateSet($data);
if(is_null($where)){
exit('您确定要全部更新吗?');
}
$where=where($where);
$sql = "update $table set $data where $where";
$res = mysqli_query($link,$sql);
if($res && mysqli_affected_rows($link)){
return true;
}else{
// return false;
return $sql;
}
}
/**
*功能:删除数据库数据
*参数:连接,数据表,条件
*返回值:插入成功返回true,否则返回false(sql语句)
*/
//delete from table where id=3;
function dbDelete($link,$table,$where){
$table = DB_PREFIX . $table;
if(is_null($where)){
exit('您确定要全部删除吗?');
}
$where = where($where);
$sql = "delete from $table where $where";
$res = mysqli_query($link,$sql);
if($res && mysqli_affected_rows($link)){
return true;
}
return $sql;
}
/**
*功能:判断是否是关联数组
*参数:数组
*返回值:是关联数组则返回true,否则返回false
*/
function isAssocArray($arr)//判断是否是关联数组
{
if(!is_array($arr)){
return $arr;
}
foreach($arr as $key=>$value){
if(is_string($key)){
return true;
// break;
}
}
return false;
}
/**
*功能:将数组的内容进行解析成进行插入操作需要的字符串
*参数:数组
*返回值:返回一个有两个成员的数组,第一个成员是插入操作的字段,第二个成员是值
*/
// //插入insert into table (name,pwd) values ('xi','123');
function insertContent($arr){//插入数据解析
if(isAssocArray($arr)){
$str[] = join(',',array_keys($arr));
$str[] = "'".join("','",array_values($arr))."'";
}else{
foreach($arr as $val){
$flag=explode('=',$val);
$arr2[$flag[0]]=$flag[1];
// var_dump($test);
}
$arr = $arr2;
$str[] = join(',',array_keys($arr));
$str[] = "'".join("','",array_values($arr))."'";
// insertContent($arr2);
}
return $str;
}
/**
*功能:条件解析,将多个条件拼接起来
*参数:数组
*返回值:返回一个拼接好的字符串,可直接放在where后面
*/
// //删除 delete from table where id=2;
function where($arr){//条件解析
if(!is_array($arr)){
return $arr;
}elseif(isAssocArray($arr)){//如果是关联数组,将其转化为索引数组
foreach($arr as $key=>$val){
$where[] = $key.'='."'$val'";
}
$arr=$where;
}
$str = join(' and ',$arr);
return $str;
}
/**
*功能:对update操作所需数据进行解析
*参数:数组
*返回值:返回一个拼接好的字符串,可直接放在set后面,where条件用where函数
*/
//改 update table set name='abc',pwd='123' where id=2;
function updateSet($arr){//修改内容解析
if(!is_array($arr)){
return $arr;
}elseif(isAssocArray($arr)){
foreach($arr as $key=>$val){
$set[] = $key.'='."'$val'";
}
$arr=$set;
}
$str = join(' , ',$arr);
return $str;
}
/**
*功能:检测数组是否有空值
*参数:数组
*返回值:如果数组中存在空值,则返回true,否则返回false,如果传入的参数不是数组,也**返回true
*/
function checkEmpty($arr){
if(empty($arr)){
return true;
}
if(is_array($arr)){
foreach($arr as $key=>$value){
$value = trim($value);
if($value==''){
return true;
}
}
return false;
}else{
return true;
}
}
/**
* [isEmail 判断是否是正确邮箱]
* @param [type] $str [要判断的邮箱]
* @return boolean [是正确的邮箱返回true,不是返回false]
*/
function isEmail($str){
$reg='/^[0-9a-z]+([.\-_]?[0-9a-z]+)*@[0-9a-z]+(.[0-9a-z]+)+$/i';
$res=preg_match($reg, $str);
if($res){
return true;
}else{
return false;
}
}
/**
* [trimArr 去除数组元素值的两边空白字符]
* @param [type] $arr [要操作的数组]
* @return [返回操作完成的数组]
*/
function trimArr($arr){
if(!is_array($arr)){
return trim($arr);
}
foreach($arr as $key=>$value){
$value=trim($value);
$arr[$key]=$value;
}
return $arr;
}
数据库增删改查使用的函数封装
最新推荐文章于 2021-12-14 20:29:12 发布