php - 这个每次刷新都要去数据库里面查询一遍吗?

 手机用户2502858941 发布于 2022-11-17 02:24

页面需要用到总的条数 需要在这个页面一直展示 那么这个代码这样写可以吗 每次刷新页面都要去数据库里面查询一次吗 是不是影响性能呢?如果数据库有几万条数据怎么办?

$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
         $stmt=$pdo->prepare("select * from table1");
         $stmt->execute();
         $res=$stmt->fetchall(PDO::FETCH_ASSOC);
         echo count($res);
3 个回答
  • 你这么写肯定是每次都连接,你可以单独吧PDO封装一个类,实用单例模式进行处理,就避免了每次执行CURD的时候都要尽兴连接操作了。我很早之前写过的例子:

    <?php
    /**
     * Description: PDO数据库操作
     * Author: yangxiangming@live.com
     * Date: 2014/7/29
     * Time: 13:35
     */
    class core_libs_safepdo {
        
        /**
         * description 定义私有静态变量
         */
        private static $safepdo;
        
        /**
         * description 构造函数
         */
        private function __construct() {
        }
        
        /**
         * description 实例化调用PDO链接数据库
         */
        private function pdolink() {
            try {
                self::$safepdo = new PDO ( BASE_TYPE . ':host=' . BASE_HOST . ';dbname=' . BASE_NAME, BASE_USER, BASE_PASS, array (
                        PDO::ATTR_PERSISTENT => TRUE,
                        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8' 
                ) );
                return self::$safepdo;
            } catch ( Exception $e ) {
                throw $e;
            }
        }
        
        /**
         * description 覆盖__clone()方法,禁止克隆
         */
        private function __clone() {
        }
        
        /**
         * description 单例模式,实例化调用数据库链接
         */
        public static function calldb() {
            if (self::$safepdo == null) {
                self::$safepdo = self::pdolink ();
            }
            return self::$safepdo;
        }
    }

    希望对你有帮助

    2022-11-17 03:48 回答
  • 访问峰值的时候有点占内存了,可以考虑在insert语句和del语句的时候,把数据统计出来放在别的地方

    2022-11-17 03:48 回答
  • 为什么不用 select count(*) from table

    $stmt=$pdo->prepare("select count(*) as num from table");
    $stmt->execute();
    $res=$stmt->fetch(PDO::FETCH_ASSOC);
    return $res['num']

    2022-11-17 03:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有