La sintaxis del DELETE, una vez construido no contiene errores:
Código SQL:
Ver originalDELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '$value'
En tanto $value contenga algo que sea realmente un
cod_producto real, no fallará.
Pero no sabemos lo que está entrando, ni qué características tiene ese campo.
Por empezar, si es numérico, elimina los apóstrofes:
Código PHP:
$sql = "DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = $value";
Si falla por un error de sintaxis, es que
$value no contiene nada. Si falla por campo inexistente, tiene una cadena de texto con letras donde debería tener un número, y eso no es lo mismo.