¿Y ya probaste sin usar variables de tu código?
¿Crees que MySQL es tan listo para saber qué es $items['stock'], $items['reference'] y demás variables que usas?
¿Sabes que es SQL?
Intenta sin utilizar variables de programación si te funciona, vas a darte cuenta que puede ser los valores que tienen esas variables y por lo tanto NO ES CONSULTA DE BD.
Función de la sección de Base de Datos