Blogger Information
Blog 44
fans 0
comment 1
visits 30694
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
4月26日作业——数据库操作函数库的封装
时光记忆的博客
Original
865 people have browsed it

封装数据库操作函数库(连接数据库,查询,插入,更新,删除)。调用函数即可完成操作

数据库连接函数:connect()函数

connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='root')

实例

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

//1.连接数据库
if (!function_exists('connect'))
{

    /**
     * 数据库连接
     * @param $dbname
     * @param string $type
     * @param string $host
     * @param string $charset
     * @param string $port
     */
    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 = $user;
        $password = $pass;
        $options = [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //错误模式
            PDO::ATTR_CASE => PDO::CASE_NATURAL, //自然名称
            PDO::ATTR_EMULATE_PREPARES => true, //启用模拟功能
            PDO::ATTR_PERSISTENT => true, //启用持久性连接
        ];

        try{
            //实例化PDO类,创建PDO对象
            $pdo = new PDO($dsn, $userName, $password, $options);
//            echo '<h1>连接成功</h1>';
        }catch (PDOException $e){
            die('连接错误'.$e->getMessage());
        }
        return $pdo;
    }
}

$type='mysql';
$host='127.0.0.1';
$dbname = 'php';
$charset='utf8';
$port=3306;
$user = 'root';
$pass = 'root';

//1.连接测试
$pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass);

运行实例 »

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


数据库查询函数库封装:find()函数

find($pdo, $table, $fields, $where='')  :  传入参数为$pdo连接,表名,查询的字段名,条件。即可返回查询到的结果数组 

实例

//1.查询单条语句
<?php
if(!function_exists('find')){
    /**
     * @param $pdo
     * @param $table
     * @param $fields
     * @param string $where
     * @return bool
     */
    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'.';';

        //创建STMT对象
        $stmt = $pdo->prepare($sql);

        if($stmt->execute()){
            if($stmt->rowCount()){
                $stmt->setFetchMode(PDO::FETCH_ASSOC);
                return $stmt->fetch();
            }
        }else{
            return false;
        }
    }
}

////////////////////
$table ='staff';
$fields = ['name', 'age', 'salary'];
//$fields = '*';
//$fields = 'name, salary';
$where = 'age < 60';

echo '<pre>'.print_r(find($pdo, $table, $fields, $where), true).'</pre>';

运行实例 »

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

2.查询多条语句

实例

<php
if(!function_exists('findAll')){

   function findAll($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;
       }
   }
}

//4.多条查询测试
$table ='staff';
$fields = ['name', 'age', 'salary'];
$fields = '*';
$fields = 'name, salary';
$where = 'age < 60';
$order = 'age ASC';

echo '<pre>'.print_r(findAll($pdo, $table, $fields, $where, $order),true).'</pre>';

运行实例 »

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

新增操作:insert()函数

实例

<?php
if (!function_exists('insert')) {
    /**
     * 新增数据
     * @param $pdo
     * @param $table
     * @param $data
     * @return bool
     */
    function insert($pdo, $table, $data=[])
    {
        //创建SQL语句
        $sql = "INSERT IGNORE {$table} SET ";
        foreach (array_keys($data) as $field) {
            $sql .= $field.'=:'.$field.', ';
        }
        //去掉尾部逗号,并添加分号结束
        $sql = rtrim(trim($sql),',').';';

        //创建PDO预处理对象
        $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;
        }
    }
}

$table = 'staff';
$data =[
    'name' => '张飞',
    'sex' => '男',
    'age' => '23',
    'salary' => '5200'
];

insert($pdo, $table, $data);

运行实例 »

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

更新函数:update();

实例

<?php
//3.更新操作
if(!function_exists('update')){
    /**
     * @param $pdo
     * @param $table
     * @param array $data
     */
    function update($pdo, $table, $data=[], $where='')
    {
        //创建SQL语句
        $sql = "UPDATE IGNORE {$table} SET ";
        foreach(array_keys($data) as $field){
            $sql .=$field.' =:'.$field.',';
        }
        $sql = rtrim(trim($sql), ',');
//        die($sql);

        //添加更新条件
        if(!empty($where)){
            $sql .= ' WHERE '. $where;
        }else{
            exit('条件不能为空');
        }

        $sql = rtrim(trim($sql), ',').';';

        //创建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;
        }
    }
}

////////////////////
$table = 'staff';
$data =[
    'name' => '吕布',
    'sex' => '男',
    'age' => '73',
    'salary' => '5200'
];

$where = 'staff_id=12';
update($pdo, $table, $data, $where);

运行实例 »

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

删除操作:delete()函数

实例

<?php
//6.删除操作
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), ',').';';

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

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

////////////////////
//5.执行删除
$table = 'staff';
$where = 'staff_id = 30';
delete($pdo, $table,  $where);

//unset($pdo);
$pdo = null;

运行实例 »

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


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!