【问题标题】:Storing database in PHP sessions在 PHP 会话中存储数据库
【发布时间】:2014-08-16 17:41:06
【问题描述】:

我有一个基于 PHP OOP 的项目,我想知道将数据库对象存储在 $_SESSION 中是否很糟糕?这对我来说会很方便,因为我不想写类似

的东西
<?php 
$db = new Db();
?> 

在每个班级,或者当我使用 ajax 请求时,但只是(例如):

echo $_SESSION['_db']->queryFirstCell("select count(*) from accounts");

它应该像Zend_Registry,但没有 Zend。请帮忙,也许我应该改变主意?

【问题讨论】:

    标签: php database session


    【解决方案1】:

    你不能在会话中存储数据库对象,它不会工作,你可以使用持久连接,但是在代码中你仍然会创建新的连接(它将从连接池中获取)

    【讨论】:

    • $_SESSION['_db'] = $page->getDb(); echo $_SESSION['_db']->queryFirstCell("select count(*) from files");但它对我有用吗?我设置了我的 Db->_connection 一次,当构造数据库类并且不写任何类似 mysql_close(Db->_connection)
    • @user3907196 $_SESSION['_db'] = $page-&gt;getDb(); 每次加载页面时都会创建连接
    【解决方案2】:

    您可以将您的 db 方法更改为静态,这样您就不需要一直实例化它!

        DB::connect()->query("SELECT * FROM users"); 
    

    【讨论】:

    • DB::connect() 会在内部做new Db(),那有什么区别呢?
    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多