博客列表 >PDO预处理分页函数库--2018年4月28日0时14分

PDO预处理分页函数库--2018年4月28日0时14分

Alan_繁华
Alan_繁华原创
2018年04月28日 00:17:44939浏览

未完待续,只写了函数库,剩下的前端尽快补上


实例

<?php
/*
 * 分页函数
 */


//1.连接数据库
if(!function_exists('connect')) {
    /医院
     * 数据库连接
     * @param $dbname           数据库名
     * @param string $type      数据库类型
     * @param string $host      连接主机
     * @param string $charset   字符集
     * @param string $port      连接端口
     * @param $username         数据库用户名
     * @param $passwd           数据库密码
     * @return PDO
     */
    function connect($dbname, $type = 'mysql',$username, $passwd, $host = '127.0.0.1', $charset = 'utf8', $port = '3306')
    {
        $dsn = $type . ":host=" . $host . ";dbname=" . $dbname . ";charset=" . $charset . ";port=" . $port;
        try {
            $pdo = new PDO($dsn, $username, $passwd);
        } catch (PDOException $e) {
            //连接失败,返回错误信息
            print "CONNECT ERROR:" . $e->getMessage();
            die();
        }
        return $pdo;
    }
}

//2.分页函数
if(!function_exists("pages")){
    /*
     * @param $pdo          数据库连接信息
     * @param $table        分页的数据表
     * @param int $page     当前页数
     * @param int $num      每页条数
     */
    function pages($pdo,$table,$page=1,$num=5){
        //limit所在位置
        $offset = ($page-1)*$num;
        //准备需要分页的SQL语句
        $sql = "SELECT * FROM {$table} LIMIT {$offset},{$num};";
        //预处理、执行查询、返回查询结果集
        $stmt = $pdo->prepare($sql);
        $stmt->execute();
        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

        //统计表中全部的数据条数,并计算总页数,结果向上取整
        //准备需要分页的SQL语句
        $sql2 = "SELECT * FROM {$table};";
        //预处理、执行查询、返回查询结果集
        $stmt = $pdo->prepare($sql2);
        $stmt->execute();
        $total = $stmt->rowCount();
        $pages = ceil($total/$num);

        //返回当前分页的数据以及全部页数
        return ['rows'=>$rows,'pages'=>$pages];
    }
}

运行实例 »

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

调用方法如下:

实例

<?php
/*
 * 实现分页
 */

//引用函数库
require 'lib/func_pages.php';

//调用连接数据库方法
$pdo = connect('php','mysql','root','123456');

$page = $_GET['p'];//获取当前页数
$num = 5;   //每页显示数据条数
$table = 'staff';   //要查询的数据表名

//调用分页方法
$data = pages($pdo,'staff',$page,$num);

$rows = $data['rows'];  //当前分页数据
$pages = $data['pages'];  //总页数
echo '<pre>';
print_r($data);

运行实例 »

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



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