Poiché il tuo database è MySQL, puoi semplicemente usare INSERT INTO ... ON DUPLICATE KEY sintassi e scartare il materiale della procedura memorizzata.
INSERT INTO products (
product, price, stock, active
) VALUES (
$product, $price, $stock, $active
) ON DUPLICATE KEY UPDATE
product=VALUES(product)
, price=VALUES(price)
, stock=VALUES(stock)
, active=VALUES(active)
Solo un'idea. Potrebbe essere un'alternativa più pulita e veloce da scrivere.
Spero di esserti stato d'aiuto