博主信息
博文 45
粉丝 2
评论 1
访问量 32552
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
2018年4月27号
哈的博客
原创
559人浏览过

总结:

昨天学习了数据库的封装

1PDO数据库操作函数库

新增操作

更新操作

查询单条数据

查询多条记录

删除数据

实例

<?php
/**
 * PDO数据库操作函数库
 */

//连接数据库
if (!function_exists('connect'))
{
   
    function connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='123.')
    {
        $dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";//数据源
        $userName = 'root'; //数据库用户名
        $password = '123.'; //数据库用户密码
        //配置连接属性
        $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对象
            $pdo = new PDO($dsn, $userName, $password, $options);
            echo 'ok';
        } catch (PDOException $e) {
            die('Connect ERROR!:'.$e->getMessage());
        }

        return $pdo;
    }
}

//新增操作
if (!function_exists('insert')) {
	function insert($pdo,$table,$data=[]){
		//准备sql语句 
		//insert ignore staff set name=:name,sex=:sex;
		$sql = "INSERT IGNORE {table} SET";
		foreach(array keys($data) as $field){
			$sql = $field.'=:'.$field.',';
		}
		// die($sql);
		$sql = rtrin(trim($sql),',').';';

		//创建预处理对象
		$stmt = $sql->prepare($sql);
		//绑定参数到预处理对象
		foreach ($data as $field => $value) {
			//绑定
			$stmt->binValue("{$field}",$value);
		}
		//执行新增操作
		if ($stmt->execute()){
           if ($stmt->rowCount()>0) {
           	return true;
           }
           
		} else {
			return false;
		}
	}
}



//更新操作
if (function_exists('update')) {
		function update($pdo,$table,$data=[],$where){
		//准备sql语句 
		//insert ignore staff set name=:name,sex=:sex;
		$sql = "INSERT IGNORE {table} SET";
		foreach(array keys($data) as $field){
			$sql = $field.'=:'.$field.',';
		}
		// die($sql);
		$sql = rtrin(trim($sql),',').';';

		//创建预处理对象
		$stmt = $sql->prepare($sql);
		//绑定参数到预处理对象
		foreach ($data as $field => $value) {
			//绑定
			$stmt->binValue("{$field}",$value);
		}
		//执行新增操作
		if ($stmt->execute()){
           if ($stmt->rowCount()>0) {
           	return true;
           }
           } else {
			return false;
		}
	}
           
}

//查询单条数据
if (!function_exists('find')) {
  
    function find($pdo,$table,$fields, $where='') {
        //创建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),',').';';

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


        //执行查询操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                $stmt->setFetchMode(PDO::FETCH_ASSOC);
                return $stmt->fetch();
            }
        } else {
            return false;
        }
    }
}

//查询多条记录
if (!function_exists('select')) {
  
    function select($pdo,$table,$fields, $where='', $order='') {
        //创建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;
        }

        //添加排序条件
        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')) {
   
    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;
        }
    }
}

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学