将它存储在每个页面加载的会话或查询数据库中?

jas*_*ton 4 php session serialization

哪条路走得更好?

我应该将对象存储在会话中并将其从一个页面传递到另一个页面,还是应该在每次用户迁移到我的Web应用程序中的另一个页面时查询数据库?

如果我应该将我的对象存储在会话中,我该怎么做呢?我已尝试使用序列化和反序列化,但它不适合我...

谢谢你的帮助!

编辑:这是我的一些代码

Page 1:
include "user.php";
session_start();
$user = new user();
$user->$username = "Jason";
$_SESSION["user"] = $user;
header("Location: profile.php");

Page 2:
include "user.php";
session_start();
$user = new user();
$user = $_SESSION["user"];
echo $user->$username;
Run Code Online (Sandbox Code Playgroud)

没有结果.

irc*_*ell 8

仅将数据存储在特定于用户的会话中.不要将会话用作缓存.糟糕的事情将来自于此(因为数据重复导致占用大量磁盘空间).

如果它是特定于用户的,那么只有当它相当小并且你经常需要它时我才会将它存储在会话中(我不会在会话中存储大于10kb的任何东西).如果您不经常需要它,请不要存储它.

如果它不是特定于用户的,则使用缓存层.你可以使用原始的APC/Memcached,或者你可以使用一个抽象层,如Cache_LiteZend_Cache ......

  • 将`$ user - > $ username ='jasonaburton'改为`$ user-> username ='jasonaburton'`你应该设置... (2认同)