博客列表 >4.26数据库常用操作封装

4.26数据库常用操作封装

吃不起土的少年的博客
吃不起土的少年的博客原创
2018年05月02日 10:44:26608浏览

实例

<?php
//连接数据库
if (!function_exists('connect'))
{

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

        return $pdo;
    }
}
//插入函数
if(!function_exists('insert')) {

    function insert($pdo, $table, $data = [])
    {
        //创建sql语句
        $sql = "INSERT IGNORE {$table} SET ";
        foreach (array_keys($data) as $field) {
            $sql .= $field . '=:' . $field . ', ';
        }
            $sql = rtrim(trim($sql),',').';';



            $stmt = $pdo->prepare($sql);


            foreach ($data as $keys => $value) {
                $stmt->bindValue(":{$keys}", $value);
            } ;

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

    }
}
//删除
if(!function_exists('delete')){
    function delete($pdo,$table,$where='')
    {
        $sql = "DELETE FROM {$table}  ";
        if(!empty($where)){
            $sql .= 'WHERE '. $where;
            print_r($sql);
         }else{
            exit('条件不能为空');
        }
        $sql = rtrim(trim($sql),',').';';
        //创建预处理对象
        $stmt=$pdo->prepare($sql);

        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }
        } else {
            return false;
        }
    }
}
//更新
if(!function_exists('update')){
    function update($pdo,$table,$data=[],$where='')
    {
        $sql = " UPDATE {$table} SET ";
        foreach (array_keys($data) as $Key) {
            $sql .= $Key.'=:'.$Key.', ';
        }
        $sql = rtrim(trim($sql),',');
        if(!empty($where)) {
            $sql .= ' WHERE '. $where;
        }else{
            exit('条件不能为空');
        }
        $stmt=$pdo->prepare($sql);
        foreach ($data as $Key => $value) {
            $stmt->bindValue(":{$Key}",$value);
        }
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }
        } else {
            return false;
        }

    }
}

//查询单条数据

if(!function_exists('find')){
    function find($pdo,$table,$fields,$where='' )
    {
        $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 = $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='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),',').';';
        $stmt = $pdo->prepare($sql);

        if($stmt->execute()){
            if($stmt->rowCount()>0){
                $stmt->setFetchMode(PDO::FETCH_ASSOC);

                return $stmt->fetchAll();
            }
        } else {
            return false;
        }

    }
}

运行实例 »

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

test

实例

<?php
//require 'mysqli_config.php';
//require 'lib/fuc_mysql.php';
require 'lib/fuc_pdo.php';

$type='mysql';      //默认数据库驱动
$host='127.0.0.1';  //默认主机
$dbname='php';      //数据库名称
$charset='utf8';    //默认编码
$port=3306;         //默认端口
$user='root';       //用户名
$pass='root';       //用户密码
$pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass);



//$table='staff';
//$data=['name'=>'rose','sex'=>0,'age'=>24,'salary'=>6510];
//insert($pdo,$table,$data);

//$table='staff';
//$where='age=33';
//delete($pdo,$table,$where);

//$table='staff';
//$data=['name'=>'罗斯','sex'=>1,'age'=>26,'salary'=>0];
//$where='staff_id=10';
//update($pdo,$table,$data,$where);

$table='staff';
$fields=['name','salary','sex'];
$where='age>10';
$order='name asc';
echo '<pre>'.print_r(select($pdo,$table,$fields,$where,$order),true).'</pre>';

运行实例 »

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


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