数据库操作封装

来源:互联网 发布:apache sh commands 编辑:程序博客网 时间:2024/06/09 21:43
<?php/** *@desc: 数据库操作辅助文件,包括sql语句的构造、增删修查函数 *@author:JiaYusheng *@time:01.10.2011 */include_once("inc/auth.php");// 如需登录验证则包含,未登录将退出include_once("inc/utility_all.php");        // 如需要使用公用函数/** *@desc: 查询表中的所有记录 *@param: 表名 *@return: 包含查询结果的记录数组 */function queryAll($table){    $sql = "select * from ".$table;    global $connection;    $result = exequery($connection,$sql);    $rows = array();     while($row = mysql_fetch_array($result))    {$rows[] = $row;    }    return $rows;}/** *@desc:依据$cloumns条件查询表$table *@param: 表名,条件字段与值构成的数组,开始记录ID,每页显示记录数 *@return:查询所得的记录构成的数组 */function queryByPaging($table,$cloumns,$firstcount,$displaypg){    global $connection;    $sql = "select * from ".$table;    $sql .= getConditionClause($cloumns);    $sql .= " limit $firstcount,$displaypg";        $rows = array();    $result = exequery($connection,$sql);    while($row = mysql_fetch_array($result))    {$rows[] = $row;    }   // echo $sql;    return $rows;}/** *@desc:根据sql进行查询,并将查询结果用二维数组返回 *@param: sql *@return:查询所得的记录构成的数组 */function query($sql){    global $connection;    $rows = array();    $result = exequery($connection,$sql);    while($row = mysql_fetch_array($result))    {$rows[] = $row;    }    return $rows;}/* *eg:     $sql="select * from $rtable where sid=$sid order by rid desc limit $firstcount,$displaypg";    $rows = query($sql); *//** *@desc:依据$cloumns条件查询表$table *@param: 表名,条件字段与值构成的数组 *@return:查询所得的记录构成的数组 */function queryAllByCondtion($table,$cloumns){    $rows = array();    global $connection;    $sql = "select * from ".$table;    $sql .= getConditionClause($cloumns);        $rows = array();    $result = exequery($connection,$sql);    while($row = mysql_fetch_array($result))    {$rows[] = $row;    }    //echo $sql;    return $rows;}/* *eg:$table = "xl_teacherinfo";$cloumns = array(               // "teacherID" => "s201025006",               // "username" => "jinyong",               // "alias" => "xiaojin",                "gender" => "1",              //  "role" => "4"                 );$rows = queryAllByCondtion($table,$cloumns);foreach($rows as $row){    echo "username: ".$row['username']."<br>";    echo "teacherID: ".$row['teacherID']."<br>";} *//** *@desc:查询表的某个字段 *@param:表名、字段名 *@return:包含查询结果的数组 */function queryCloumns($table,$arrCloumns,$arrCondition){    $sql = getColumns($arrCloumns);    $sql .= " from ".$table;    $sql .= getConditionClause($arrCondition);        $rows = array();    global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_num_rows($result);        //将结果保存到数组$rows中    $rows = array();    $result = exequery($connection,$sql);    while($row = mysql_fetch_array($result))    {$rows[] = $row;    }   // echo $sql;    return $rows;    }/* *eg:$table = "xl_teacherinfo";$arrCondition= array(                    "role" => 4,                    "gender" => 1                    );$arrCloumns = array(                    "teacherID",                    "teachername",                    "username"                       );echo queryCloumns($table,$arrCloumns,$arrCondition); *//** *@desc: 向表table的columns字段中插入值values *@param: 表名,要插入记录的字段,字段值构成的数组 *@return: 包含查询结果的数组 */function insert($table,$cloumns){    $count = 0;    $sql = "insert into ".$table."(";    foreach($cloumns as $key => $value)    {        if(0==$count)            $sql .= $key;        else            $sql .= ",".$key;        $count++;    }               $sql .=") values(";          $count = 0;    foreach($cloumns as $key => $value)    {        if(0==$count)        {            if(is_string($value))            {                $sql .= "'".$value."'";            }            else                $sql .=$value;        }        else        {            if(is_string($value))                $sql .= ",'".$value."'";            else                $sql .= ",".$value;        }        $count++;    }    $sql .= ") ";    //echo $sql;//test@@@@    global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_affected_rows();    return $num_rows;}/* *eg$table = "xl_dict_role";$cloumns = array(                "name" => "jys",                "serial" =>99                );echo insert($table,$cloumns); *//** *@desc: 向表table的columns字段中插入值values *@param: 表名,要插入记录的字段数组,字段值数组 *@return: 包含查询结果的数组 */function insertCV($table,$cloumns,$values){    $count = 0;    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;    $sql = "insert into ".$table."(";    foreach($cloumns as $item)    {        if(0==$count)            $sql .= $item;        else            $sql .= ",".$item;        $count++;    }    $sql .=") values(";        $count = 0;    foreach($values as $item)    {        if(0==$count)        {            if(is_string($item))            {                $sql .= "'".$item."'";            }            else                $sql .=$item;        }        else        {            if(is_string($item))                $sql .= ",'".$item."'";            else                $sql .= ",".$item;        }        $count++;    }    $sql .= ") ";        global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_affected_rows();    return $num_rows;}/* *eg $table = "xl_dict_role";$cloumns = array("name","serial");$values = array("xinlilaoshi",10);echo insertCV($table,$cloumns,$values);*//** *@desc: 删除table中cloumn字段为value的记录 *@param: 表名,字段,字段值 *@return: 影响的记录数目 */function deleteByCloumn($table,$condCloumns){    $sql = "delete from ".$table;    //"where ".$cloumn."='".$value."'";    $sql .= getConditionClause($condCloumns);    global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_affected_rows();    return $num_rows;}/* *eg   $delID = "7";   $table = "xl_teacherinfo";   $cloumns = array("tid"=>$delID);   echo deleteByCloumn($table,$cloumns);*//** *@desc: 修改table中condCloumn字段为condValue的记录, *将cloumns字段修改为值values *@param: 表名,被修改字段,被修改字段值,条件字段与条件字段值构造的数组 *@return: 影响的记录数目 */function update($table,$cloumns,$condCloumns){    $count = 0;    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;    $sql = "update ".$table." set ";    foreach($cloumns as $key => $value)    {        if(0==$count)        {            if(is_string($value))            $sql .= $key."='".$value."'";            else                $sql .= $key."=".$value;        }        else        {            if(is_string($value))            $sql .= ",".$key."='".$value."'";            else                $sql .= ",".$key."=".$value;        }        $count++;            }      $sql .= getConditionClause($condCloumns);    //echo "<br>update sql: ".$sql."<br>";    global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_affected_rows();    return $num_rows;}/* *eg$table = "xl_dict_role";$cloumns = array("name"=>"心理",                 "serial"=>"88");$condCloumns = array("id"=>11);echo update($table,$cloumns,$condCloumns); *//*function update($table,$cloumns,$values,$condCloumns){    $count = 0;    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;    $sql = "update ".$table;    $sql .= getConditionClause($condCloumns);        global $connection;    $result = exequery($connection,$sql);    $num_rows = mysql_num_rows($result);    return $num_rows;}*//* *eg$table = "xl_dict_role";$cloumns = array("name","serial");$values = array("xinlilaoshi",10);$condCloumns = array("id"=>1);echo update($table,$cloumns,$values,$condCloumns); *//** *@desc: 构造select 语句的被选择字段语句 *@param: 被选择字段的数组 *@return: "select clo1, clo2" */function getColumns($arrCloumns){   $count = 0;   $sql = "select ";   foreach($arrCloumns as $item)   {     if(0==$count)     {        $sql .=$item;     }     else     {        $sql .=", ".$item;     }      $count++;   }  return $sql;}/* *eg: *$arr = array('leo','jia');//echo getColumns($arr); *//** *@desc:根据数组queryItems构造SQL语句中的AND条件子句 *@param:条件字段的数组 *@return:sql语句的条件语句 */function getConditionClause($queryItems){    $count = 0;    $where = "";    //根据数组,循环生成条件子句    foreach($queryItems as $key => $value)    {                if ($count == 0)                $where = " where ";        else                $where .= " and ";                //根据查询列的数据类型,决定是否加单引号        if(is_numeric($value))        {            $where .= $key."=".$value;        }        else if(!is_numeric($value))        {            $where .=  $key." Like '%".$value."%'";        }        $count++;        }    return $where;}/* *eg:$arr1 = array("id" => 1);echo getConditionClause($arr1); *//** *@desc:利用包含条件字段的数组构造条件子句 *@param:包含条件字段的数组,与还是或查询,取值={"and","or"} *@return:条件子句 */function getConditionClauseByType($queryItems,$type){    $count = 0;    $where = "";        foreach($queryItems as $key => $value)    {                if ($count == 0)            $where = " where ";        else            $where .= " ".$type." ";        //根据查询列的数据类型,决定是否加单引号        if(is_numeric($value))        {            $where .= $key."=".$value;        }        else if(!is_numeric($value))        {            $where .=  $key." Like '%".$value."%'";        }        $count++;          }    return $where;}?>

 
原创粉丝点击