美文网首页
PHP -- 数据库9 -- 数据库函数封装

PHP -- 数据库9 -- 数据库函数封装

作者: 潘肚饿兵哥哥 | 来源:发表于2019-09-25 22:25 被阅读0次

    \color{rgba(254, 67, 101, .8)}{封装一个插入或更新数据提示是否成功的函数:}

    $link = @mysqli_connect('localhost', 'root', 'root', '180301') or die(mysqli_connect_error());
        mysqli_set_charset($link, 'utf8') or die(mysqli_error($link));
    
        function execute($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            if($result){
                return mysqli_affected_rows($link);//返回受影响的行数,返回值为0 或者大于0 的数,大于0可以当 真 来用
            }else{
                return false;
            }
            mysqli_close($link);
        }
    
    
        //增删改查
        $sql = "insert into student (number, name) values ('080404', '李雷')";
        //$sql = "update student set sex=0 where number='180403'";
        $ret = execute($sql);
        var_dump($ret);
        if($ret != false){//返回值不全等与false,$ret的返回值有0.所以要判断他和false的区别,只要不全等,就不相同
            if($ret == 0){
                echo '修改成功,没有修改任何内容';
            }else{
                echo '修改成功';
            }
        }else{
            echo '修改失败';
        }
        
    
    image.png

    \color{rgba(254, 67, 101, .8)}{封装查询多行数据函数:}

     $link = @mysqli_connect('localhost', 'root', 'root', '180301') or die(mysqli_connect_error());
        mysqli_set_charset($link, 'utf8') or die(mysqli_error($link));
    
        function execute($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            if($result){
                return mysqli_affected_rows($link);//返回受影响的行数,返回值为0 或者大于0 的数,大于0可以当 真 来用
            }else{
                return false;
            }
            mysqli_close($link);
        }
    
    
        function get_all($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_all($result, MYSQLI_ASSOC);
            //MYSQLI_ASSOC 获取关联下标
            //MYSQLI_both  两种下标都有
            //MYSQLI_NUM   获取数字下标
    
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list;
        }
        //查询
        $sql = "select goods_id, goods_name, shop_price, cat_id from goods where goods_id in(select max(goods_id) from goods group by cat_id)";
        $list = get_all($sql);
    
        echo '<pre>';
        print_r($list);
        echo '</pre>';
    
    image.png

    \color{rgba(254, 67, 101, .8)}{封装查询一行数据函数:}

    $link = @mysqli_connect('localhost', 'root', 'root', '180301') or die(mysqli_connect_error());
        mysqli_set_charset($link, 'utf8') or die(mysqli_error($link));
    
        function execute($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            if($result){
                return mysqli_affected_rows($link);//返回受影响的行数,返回值为0 或者大于0 的数,大于0可以当 真 来用
            }else{
                return false;
            }
            mysqli_close($link);
        }
    
        //查询多行数据
        function get_all($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_all($result, MYSQLI_ASSOC);
            //mysqli_fetch_all获取所有关联数据,查询多行数据的函数
            //MYSQLI_ASSOC 获取关联下标
            //MYSQLI_both  两种下标都有
            //MYSQLI_NUM   获取数字下标
    
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list;
        }
    
        //查询一行数据
        function get_row($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_assoc($result);
            //mysqli_fetch_assoc获取一行关联数据,查询一行数据的函数
            //只获取一行数据,就不需要用 MYSQLI_ASSOC 了,这样取出的结果不再是二维数组,而是一维数组
    
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list;
        }
    
    
    
        //查询
        $sql = "select goods_id, goods_name, shop_price from goods where goods_id=1 limit 1";//限制显示1条
        $list = get_row($sql);
    
        echo '<pre>';
        print_r($list);
        echo $list['goods_name'];//把商品名称输出来 这个$list是一个二维数组,0是第一个数组的下标
        echo '</pre>';
    
    image.png

    \color{rgba(254, 67, 101, .8)}{封装查询一个数据函数:}

    $link = @mysqli_connect('localhost', 'root', 'root', '180301') or die(mysqli_connect_error());
        mysqli_set_charset($link, 'utf8') or die(mysqli_error($link));
    
        function execute($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            if($result){
                return mysqli_affected_rows($link);//返回受影响的行数,返回值为0 或者大于0 的数,大于0可以当 真 来用
            }else{
                return false;
            }
            mysqli_close($link);
        }
    
        //查询多行数据
        function get_all($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_all($result, MYSQLI_ASSOC);
            //mysqli_fetch_all获取所有关联数据,查询多行数据的函数
            //MYSQLI_ASSOC 获取关联下标
            //MYSQLI_both  两种下标都有
            //MYSQLI_NUM   获取数字下标
    
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list;
        }
    
        //查询一行数据
        function get_row($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_assoc($result);
            //mysqli_fetch_assoc获取一行关联数据,查询一行数据的函数
            //只获取一行数据,就不需要用 MYSQLI_ASSOC 了,这样取出的结果不再是二维数组,而是一维数组
    
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list;
        }
    
    
        //查询一个数据
        function get_one($sql){
            global $link;
            $result = mysqli_query($link, $sql) or die(mysqli_error($link));
            $list = mysqli_fetch_row($result);
            mysqli_free_result($result);//释放资源  从结果集中取得行,然后释放结果内存
            return $list[0]; //因为只查一个数据,所以,用mysqli_fetch_row,获取数字下标
            //然后在这里直接拿这个下标,就可以得到数据了
            //因为这个数组就只有一个数据,所以下标就是0,
            //如果用 mysqli_fetch_assoc的话,拿到的数据是关联下标
            //这样如果查询的结果变更了,就全部涉及到这个关联下标的地方都要换,所以就不方便
            //这样用数字下标就无论查什么,下标都是0
        }
    
    
    
        //通过上面三个查询:查询多行、查询一行、查询一个数据
        //分别把mysqli_fetch_all、mysqli_fetch_assoc、mysqli_fetch_row都用了一遍
    
    
    
        //查询
        $sql = "select max(shop_price) from goods";//查询商品总数,total是别名
        $list = get_one($sql);
    
        echo '<pre>';
        print_r($list);
        echo '</pre>';
    
    image.png

    \color{rgba(254, 67, 101, .8)}{通过上面三个查询:查询多行、查询一行、查询一个数据}
    \color{rgba(254, 67, 101, .8)}{把mysqli\_fetch\_all、mysqli\_fetch\_assoc、mysqli\_fetch\_row都用了一遍}


    相关文章

      网友评论

          本文标题:PHP -- 数据库9 -- 数据库函数封装

          本文链接:https://www.haomeiwen.com/subject/trsjectx.html