Först behöver du ett unikt index på (usersessid, product_id) . Jag är inte säker på om du faktiskt använder den automatiskt genererade kolumnen id , men om inte, bör du ändra primärnyckeln till (usersessid, product_id) . Då istället för att köra en separat UPDATE fråga, kör bara en enda INSERT fråga:
INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?
Bara för att göra det tydligt hur det unika indexet ska se ut:
CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);
Eller primärnyckel:
ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);