I’m developing a shopping cart for a website, and was wondering what way should I store the product id after the user has clicked on the “Add to cart”.
Should I store them in a session — Such as
$_SESSION['cart'][$productid]++;
Would this put strain on the server under load? Or is this the best way of doing it?
Or should I create a temp database table, store the information in there, and remove after order has been processed?
I would store them in a database for sure, but not create a temp table each time. I would suggest you keep a table that has all the unfinished orders along with an identifier for the user.
This will last longer than a session, all it to be retained after a user has logged off and available after that user logs back in again. When then user is logged in, keep their identifier in the session.
Edit: While connecting to a database does consume resources, that is what database servers are made for. A connection to a small table uses next to nothing – I mean, you are probably executing a good number of queries just displaying your shopping cart. If you get to the point where your website can’t handle the extra stress due to saving an odd row in a small table, you will be getting enough money from the sales to buy a bigger server 🙂