Which is the better route to go?
Should I store my object in session and pass it from page to page, or should I query the database each time the user migrates to another page in my web app?
If I should store my object in session, how would I go about doing that? I've tried doing it with serialize and unserialize but it is not working for me...
Thanks for any help!
EDIT: Here is some of my code
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;
No results.
Only store data in a session that's user-specific. Don't use a session as a cache. Bad things will come from that (like eating up tons of disk space due to duplication of data).
If it is user specific, then I'd store it in a session only if it's reasonably small and if you need it often (I wouldn't store anything bigger than 10kb or so in a session). If you don't need it too often, then don't store it.
If it's not user specific, then use a cache layer. You could use raw APC/Memcached, or you could use an abstraction layer such as Cache_Lite or Zend_Cache...
I would say :
If storing to session, you should have to serialize/unserialize yourself : it's already done by the sessions mecanism (note that some data types cannot be serialized -- see Sessions).
If storing to cache (APC, memcached, files, ...), you'll often need to serialize/unserialize, because those caching mecanisms don't know how to store PHP objects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With