博客列表 >数据库操作类库封装 -----2018年04月26日

数据库操作类库封装 -----2018年04月26日

失去过去的博客
失去过去的博客原创
2018年04月28日 01:54:221032浏览

1、config.php 数据库配置文件

<?php
//pdo数据库连接配置文件
$dbname = 'bz2018';
$type = 'mysql';
$host='127.0.0.1';
$charset = 'utf8';
$port  = '3306';
$user= 'root';
$pass = 'root';
$pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、func_pdo.php 函数封装的数据操作类库

<?php
//function_exists(function_name) 检测函数是否被定义
if (!function_exists('connect')) {

    /医院
     * @param $dbname
     * @param $type
     * @param $host
     * @param $charset
     * @param $port
     * @param $user
     * @param $pass
     * @return PDO
     */
    function connect($dbname, $type, $host, $charset, $port, $user, $pass){

	//数据源
	$dsn = "{$type}:host={$host};dbname={$dbname};charset={$charset};port={$port}";
	//配置连接属性
	$options= [
	
	PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,//设置错误模式
	PDO::ATTR_CASE=>PDO::CASE_NATURAL,//设置数据库字段保持不变
	PDO::ATTR_EMULATE_PREPARES=>TRUE,//启用pdo模拟功能
	PDO::ATTR_PERSISTENT=>TRUE//启用持久性连接
	];

	//连接调试代码段
	try{
		//实例化pdo对象
		$pdo = new PDO($dsn,$user,$pass,$options);
      //		echo '连接成功';
	}catch(PDOException $e){
		//抛出异常
		die('ERROR:'.$e->getMessage());
	}
	
	return $pdo;
}
}
//新增数据
if(!function_exists('insert')){
    /医院
     * @param $pdo
     * @param $table
     * @param array $data
     * @return bool
     */
    function insert($pdo, $table, $data=[]){
	 //	创建sql预处理语句
			$sql = "INSERT IGNORE {$table} SET ";
			foreach(array_keys($data) as $fileld){
				$sql .= $fileld.'=:'.$fileld.', ';
			}
			//去除sql语句的左右空格 并去除右边的逗号
			$sql = rtrim(trim($sql),',').';';

			//创建pdo预处理对象
			$stmt = $pdo->prepare($sql);
			//绑定参数到预处理对象
			foreach($data as $fileld => $value){
				$stmt->bindValue(":{$fileld}",$value);
			}
			//执行新增操作
			if($stmt->execute()){
				if($stmt->rowCount()>0){
					return true;
				}
			}else{
				return false;
			}
		}
}
//更新数据
if(!function_exists('updata')){
    /医院
     * @param $pdo
     * @param $table
     * @param array $data
     * @param string $where
     * @return bool
     */
    function update($pdo, $table, $data=[], $where=''){
//        创建sql语句
        $sql = "UPDATE {$table} SET ";
        foreach (array_keys($data) as $field) {
            $sql .= $field.'=:'. $field.', ';

        }
        //去掉尾部的逗号并添加分号
        $sql = rtrim(trim($sql),', ');
        //
//        添加更新条件
        if (!empty($where)) {
            $sql .= ' WHERE '.$where.';';
        } else {
            exit('条件不能为空');
        }

//        创建stmt对象
        $stmt = $pdo->prepare($sql);
        //绑定参数到预处理对象中
        foreach ($data as $field => $value) {
            $stmt->bindValue(":{$field}", $value);
        }

        //执行更新操作
        if ($stmt->execute()) {
            if ($stmt->rowCount()>0) {
                return true;
            }
        } else {
            return false;
        }
    };
};
//查询单条数据
if (!function_exists('find')){
//    查询单条数据
    function find($pdo,$table,$fields,$where){
//    c创建sql语句
        $sql = 'SELECT ';
        if(is_array($fields)){
            foreach($fields as $field){
                $sql .= $field.', ';
            }
        }else{
            $sql .=$fields;
        }
        $sql = rtrim(trim($sql),', ');
        $sql .= ' FROM '.$table;
        //添加查询条件
        if(!empty($where)){
            $sql .= " WHERE ".$where;
        }
        $sql .= ' LIMIT 1';
        $sql = rtrim(trim($sql),', ').';';

        //创建stmt对象
        $stmt = $pdo->prepare($sql);
        //执行查询操作
        if ($stmt->execute()){
                if ($stmt->rowCount()>0){
                    $stmt->setFetchMode(PDO::FETCH_ASSOC);
                    return $stmt->fetch();
                }

            }else{
            return $stmt->error;
        }

        };
    }
//查询多条数据
if (!function_exists('select')){
    //查询多条记录
    /医院
     * @param $pdo
     * @param $table
     * @param $fields
     * @param string $where
     * @param string $order
     * @return bool
     */
    function select($pdo, $table, $fields, $where='', $order=''){
//            创建sql语句
        $sql = 'SELECT ';
        if (is_array($fields)){
            foreach($fields as $field){
                $sql .= $fiele.', ';
            }

        }else{
            $sql .=$fields;
        }
        $sql = rtrim(trim($sql),',');
        $sql .=' FROM '.$table;
        //添加查询条件
        if(!empty($where)) {
            $sql .= '  WHERE '. $where;
        }
        //添加排序条件
        if (!empty($order)){
            $sql .=' ORDER BY '.$order;
        }
        //去掉尾部的逗号并添加逗号
        $sql = rtrim(trim($sql),' , ').';';
        //创建pdo预处理对象
        $stmt= $pdo->prepare($sql);
        //执行操作
        if ($stmt->execute()){
            if($stmt->rowCount()>0){
                $stmt->setFetchMode(PDO::FETCH_ASSOC);
                return $stmt->fetchAll();
            }
        }else{
            return false;
        }
    };
}
//删除数据
if (!function_exists('delete')) {
    /医院
     * 删除记录
     * @param $pdo
     * @param $table
     * @param string $where
     * @return bool
     */
    function delete($pdo,$table, $where='') {
        //创建SQL语句
        $sql = "DELETE FROM {$table} ";
        //添加删除条件
        if(!empty($where)) {
            $sql .= 'WHERE '. $where;
        }else{
            exit('条件不能为空');
        }
        //去掉尾部逗号,并添加分号结束
        $sql = rtrim(trim($sql),', ').';';

        //创建PDO预处理对象
        $stmt = $pdo->prepare($sql);

        //执行删除操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }
        } else {
            return false;
        }
    }
}
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3、 测试demo.php 

<?php
require'lib/pdo_function.php';
require'lib/config.php';
//新增测试
$data = ['username'=>'cheshi2','password'=>md5(123456),'coin'=>'2002'];
$table = 'loot2017_members';
//insert($pdo,$table,$data);

//更新测试
$table = 'loot2017_members';
$data =['password'=>md5(123123),'coin'=>'9000'];
//$where = 'uid= 332';
//update($pdo,$table,$data,$where);

//单条查询
$table = 'loot2017_members';
$fields = ['username','coin','uid','qq','name','updateTime'];
$where = 'uid>300';
echo'<pre>';
// print_r(find($pdo,$table,$fields,$where));
$table = 'loot2017_members';
$fields = ['username','coin','uid'];
$fields = '*';
$where = 'coin > 1000';
$order = 'username asc';
//echo '<pre>'.print_r(select($pdo, $table, $fields, $where, $order),true).'</pre>';
$where = 'uid = 333';
$table = 'loot2017_members';
delete($pdo,$table, $where);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

以上就是封装的数据库操作类,有兴趣的同学可以自行复制修改

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议