Først skal du have et unikt indeks på (usersessid, product_id) . Jeg er ikke sikker på, om du rent faktisk bruger den automatisk genererede kolonne id , men hvis ikke, bør du ændre den primære nøgle til (usersessid, product_id) . Så i stedet for at køre en separat UPDATE forespørgsel, kør kun en enkelt INSERT forespørgsel:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Bare for at gøre det klart, hvordan det unikke indeks skal se ud:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Eller primær nøgle:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);